参考意见
1)原因分析:
  由于数据库“open_cursors”参数初始设置太小(默认64),应用调用打开过多的游标数,但是没有合理及时关闭,造成下次查询“超过打开游标最大数”
2)解决方法:
  估计一下你实际应用的每次的大概连接打开游标数,以及实际允许的并发访问量来计算合理的参数配置。
  比如:每连接用户打开游标数为10,并发访问最多为:200个
  则:open_cursors = 200*10 = 2000

解决方案 »

  1.   

    用完游標后關閉,設置更大的值open_cursors
    oracle也用到大量隱式游標,你自己使用的時候,通常用完游標后及時關閉就可以了。
      

  2.   

    是的楼上的已经说的很清楚,首先把INIT<SID>.ORA 里的open_cursors加大
    然后注意程序里用到游标的地方要及时关闭。
      

  3.   

    Cause: A host language program attempted to open too many cursors. The initialization parameter OPEN_CURSORS determines the maximum number of cursors per user. Action: Modify the program to use fewer cursors. If this error occurs often, shut down Oracle, increase the value of OPEN_CURSORS, and then restart Oracle.
      

  4.   

    请问INIT<SID>.ORA ,这个文件在哪个目录下呢
      

  5.   

    在oracle 9i上的init<sid>.ora中没有“open_cursors”这一项,我查过了.
    请问各位在oracle 9i上碰到这个问题要怎样决绝?
      

  6.   

    oracle_home$/database/INIT<SID>.ORA