用动态游标:
type myCurType is ref cursor;
L_cursor myCurType;
mySql string(200);
...
begin
mySql:='select ...';
open L_cursor for mySql;
...
type myCurType is ref cursor;
L_cursor myCurType;
mySql string(200);
...
begin
mySql:='select ...';
open L_cursor for mySql;
...
定义显式游标的时候,其中涉及的数据库对象必须是oracle能识别的。
而你需要传入参数,那么就使用动态游标。
以下是一个测试的错误:
SQL> declare
2 cursor t_sor(p_tv varchar2) is
3 select * from p_tv;
4 begin
5 for v_sor in t_sor('tv') loop
6 null;
7 end loop;
8
9 end;
10 /declare
cursor t_sor(p_tv varchar2) is
select * from p_tv;
begin
for v_sor in t_sor('tv') loop
null;
end loop;end;ORA-06550: 第 3 行, 第 17 列:
PL/SQL: ORA-00942: 表或视图不存在
ORA-06550: 第 3 行, 第 3 列:
PL/SQL: SQL Statement ignored
然后还有取出 L_cursor.rdc_code的值。
这里 'user.tableName' 和参数 L_stdfield 是通过funciton(param1 in varchar2,param2 in varchar2) 传来的值。