在PRO*C下面连接ORACLE数据库,经过多次测试以后,总是出现ORA_01000这个错,查了一下是超出游标使用的最大数字,但程序中根本还没有使用到显示游标,查了select * from v$open_cursor where user_name<>'SYS'; ;看到的结果都是这些select USERLEVEL ,PASSWD into :b0,:b1  from sys_operator whe简单的使用隐式游标的地方没有释放掉,不使用增大open_cursors方法,因为这个方法没有解决根本的问题.求如何真正的解决这个问题?

解决方案 »

  1.   

    我说过了没有使用显示的游标啊,
     EXEC SQL SELECT count(*) INTO :iCount FROM sys_operator WHERE userid=:szUserid;
     EXEC SQL SELECT USERLEVEL,PASSWD INTO :szUserlevel,:szPasswd FROM sys_operator WHERE userid=:szUserid;
    只运行了这二句,其他工作都没有做,我跟踪数据库中的都也就是这些语句太多了啊;
    select USERLEVEL ,PASSWD into :b0,:b1  from sys_operator whe
    这一句在SQL_TEXT大量的显示出来、 
      

  2.   

    select * from v$open_cursor where user_name<>'SYS'; 我用这句跟踪,全是以下二句在数据库中:      select USERLEVEL ,PASSWD into :b0,:b1  from sys_operator whe                                         select count(*)  into :b0  from sys_operator where userid=:b
      

  3.   

    你都没有用游标,那就不是游标的问题.
    看看PRO*C连接Oracle和,程序执行完后关闭连接的部分,是不是正确.
    还有看看你的SESSION数,是不是正常.