Я хочу объявить курсор на несуществующей таблице. Конечно, моя процедура не компилируется.
Эта таблица является временной таблицей и создается предварительным процессом. Он будет существовать во время выполнения, но во время компиляции это другая история.
Для выбора / обновления других операций DML я использовал
EXECUTE IMMEDIATE 'operation from 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, спасибо.
Заранее спасибо.