我在Delphi / Oracle应用程序中收到以下错误消息“ora-01000 - 超出最大打开游标数”。代码如下:
begin
for i := 0 to 150 do
begin
with myADOQuery do
begin
SQL.Text := 'DELETE FROM SOMETABLE';
ExecSQL; -- from looking at V$OPEN_CURSOR a new cursor is added on each iteration for the session
Close; -- thought this would close the cursor but doesn't
end;
end;
end;
我知道我可以通过简单地增加OPEN_CURSORS参数的数量来解决问题,但是,我宁愿找到一个解决方案,在执行查询后关闭游标。有什么想法吗?
Delphi 2006 BDS Oracle 10g
答案 0 :(得分:2)
答案 1 :(得分:1)
检查this link。我不是Oracle用户,但似乎有一些游标缓存,因为他们说“调整OPEN_CURSORS的最佳建议不是调整它。设置得足够高,你不必担心它。”所以我会说,即使Close命令关闭光标,它仍然保留在缓存中。还有一些提示,如何检查您当前的情况。
答案 2 :(得分:1)
答案 3 :(得分:0)
如果省略关闭会怎样?