我想在一张不存在的表上声明一个游标。当然,我的过程无法编译。
这个表是一个临时表,在预处理中创建。它将在运行时存在,但在编译时又是另一回事了。
对于我的select / update和其他DML操作,我已经使用了
有什么办法吗?
基本上,我希望这个过程可以编译通过。
这个表是一个临时表,在预处理中创建。它将在运行时存在,但在编译时又是另一回事了。
对于我的select / update和其他DML操作,我已经使用了
EXECUTE IMMEDIATE 'tmp_table中的操作'
,但我找不到解决游标的方法。有什么办法吗?
基本上,我希望这个过程可以编译通过。
drop table test;
/*from this on should compile*/
DECLARE
cursor c is select * from test;
BEGIN
for reg in c LOOP
/*...*/
END LOOP;
END;
更新
目前尚未编译:
SQL> declare
2 c sys_refcursor;
3 BEGIN
4 open c for 'select * from pepito'; -- 'pepito' does not exist
5 close c;
6 end;
7 /
declare
*
ERROR at line 1:
ORA-00942: table or view does not exist
ORA-06512: at line 4
建议使用CREATE PROCEDURE语句,谢谢。
提前致谢。
declare
替换为CREATE PROCEDURE test_cursor AS
以编译代码。 - Peter Lang