当我按如下方式创建游标cur
时 -
CURSOR cur IS SELECT Rownum r FROM dual WHERE mod(rownum,2)=1 CONNECT BY rownum <15;
它给我一个错误ORA-30009: Not enough memory for CONNECT BY operation
。
我尝试将限制降低到3,但它没有用。
知道我使用此游标作为 -
运行循环可能会有所帮助FOR cur_inst IN cur
LOOP
dbms_output.put_line(cur_inst.r);
END LOOP;
循环运行一次并打印1
。但是,在第一次迭代后抛出上述错误。
此外,如果我删除WHERE
子句,查询将正确执行 -
答案 0 :(得分:2)
在连接行后应用过滤逻辑!否则,它会搞乱连接。
CURSOR cur IS
select r from
(SELECT Rownum r FROM dual CONNECT BY rownum <15
)
where mod(r,2)=1