我知道如果这种情况是可以的:
type rc is ref cursor;
cur rc;
v_sql varchar2(2000):='begin :Result=select * from tabName;end;';
.....
execute immediate v_sql using rc;这是生成一个结果集传出是可以的,
但是如果作为一参数传入是不是可行的呢?例如:
v_sql varchar2(2000):='declare cc rc;begin cc:=:1;....end;';
.....
execute immediate v_sql using rc;这种情况可行吗?哪位高手指点一下,谢谢。
type rc is ref cursor;
cur rc;
v_sql varchar2(2000):='begin :Result=select * from tabName;end;';
.....
execute immediate v_sql using rc;这是生成一个结果集传出是可以的,
但是如果作为一参数传入是不是可行的呢?例如:
v_sql varchar2(2000):='declare cc rc;begin cc:=:1;....end;';
.....
execute immediate v_sql using rc;这种情况可行吗?哪位高手指点一下,谢谢。
type trc is ref cursor;
rc trc;
rc1 trc;
n number;
v_sql varchar2(2000) := 'begin open :Result for select deptno from scott.emp;end;';
v_sql1 varchar2(2000) := 'declare type trc is ref cursor;n number; cc trc;begin cc:=:1; loop
fetch cc into n;
exit when cc%notfound;
dbms_output.put_line(n);
end loop; end;';
begin
execute immediate v_sql
using rc; /* loop
fetch rc into n;
exit when rc%notfound;
dbms_output.put_line(n);
end loop;*/ execute immediate v_sql1
using rc;
end;