我想循环之前连接的动态查询。然而,即使是这个简单的例子
begin
for rec in (execute immediate 'select dummy from dual') loop
dbms_output.put_line(rec.dummy);
end loop;
end;
我收到错误
在期待以下其中一项时立即遇到符号
如何实现这样的循环?
不能直接使用立即执行在游标中进行循环。 相反,您需要一个“参考光标”:
DECLARE
v_cur SYS_REFCURSOR; -- Declare a cursor variable
rec VARCHAR2(100); -- Variable to hold the result of each row
BEGIN
-- Open the cursor for the dynamic SQL query
OPEN v_cur FOR 'SELECT dummy FROM dual';
-- Fetch each row from the cursor
LOOP
FETCH v_cur INTO rec; -- Fetch each row into 'rec'
EXIT WHEN v_cur%NOTFOUND; -- Exit the loop when no more rows
--DO STUFF YOU NEED FOR EACH INDEX HERE
END LOOP;
CLOSE v_cur; -- Close the cursor
END;