一直以为动态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博客 ” ,链接:https://blog.itpub.net/8520577/viewspace-1061206/
,如需转载,请注明出处,否则将追究法律责任。