Oracle動態SQL引數支援複雜型別

abstractcyj發表於2013-11-27
一直以為動態SQL中的繫結變數只能支援簡單資料型別,今天試了一下rowtype, PL/SQL引擎是可以支援的。以下是程式碼,scott使用者可以執行

 CREATE PROCEDURE test_param_type(p_emp emp%ROWTYPE) IS
BEGIN
  dbms_output.put_line(p_emp.ename);
END; 
/

DECLARE
  CURSOR cur_emp IS
    SELECT * FROM emp;
  v_emp emp%ROWTYPE;
BEGIN
  OPEN cur_emp;
  LOOP
    FETCH cur_emp
      INTO v_emp;
    EXIT WHEN cur_emp%NOTFOUND;
    EXECUTE IMMEDIATE 'begin test_param_type(:1); end;'
      USING v_emp;
  END LOOP;
  CLOSE cur_emp;
END;
/

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8520577/viewspace-1061206/,如需轉載,請註明出處,否則將追究法律責任。

相關文章