close cursor_name;好象是这样的吧。很就没用了,记不清了。

解决方案 »

  1.   

    在pl/sql中就是用close .
    你指的程序是?
      

  2.   

    ORA-01000 maximum open cursors exceeded这个错误是因为试图打开的游标数超过了数据的设置的值。需要检查程序中有什么地方忘了关闭游标。If you want more cursors to be opened at the same time, shut the database, change INITSID.ORA and restart the database. 如果你需要在程序中同时打开更多的游标,你可以关闭数据库,修改INITSID.ORA,充启数据库
    The initialization parameter OPEN_CURSORS in INITSID.ORA determines the maximum number of cursors per user. 
    Check the parameter specified by executing the following SQL: 
    select * from v$parameter 
    where name = 'open_cursors' 
    / If you want more cursors to be opened at the same time, shut the database, change INITSID.ORA and restart the database. The cursors that are counted for this are those explicit cursors that you opened and never closed or the cursors the PL/SQL keeps open. If you use a lot of stored procedures, then you will see lot of cached cursors. From release 8.1, PL/SQL will close these cached cursors on commit. You can find the list of open cursors and the users who opened them by executing the following SQL: select user_name, status, osuser, machine, a.sql_text 
    from v$session b, 
    v$open_cursor a 
    where a.sid = b.sid 
    / But the above SQL will tell you about cursors opened at some point of time, but does tell you about currently open cursors. But the above SQL will helps us to track cursor leaks, which would need fixing, to avoid this error in the future. The SQL given below will tell you how many are open truly. select a.value, b.name 
    from v$mystat a, v$statname b 
    where a.statistic# = b.statistic# 
    and a.statistic#= 3 
    / The closing of the cursor change based on the tool you use: In JDBC, preparedStatement.close() does closes the cursor. 
    In PRO*C EXEC SQL CLOSE ; does it. 
    In OCI -- there is an API call to close a statement These statements will make sure you close every explicitly opened cursor.