2009-08-06 24 views
2

データベースのOracleバージョンは10gです。JDBCを使用してOracle SPを実行しようとすると「カーソルが閉じています」エラー

次のようにストアドプロシージャは、テーブル内のすべての要素を選択し、REF CURSOR型を返す: このストアドプロシージャがJAVAで実行されると、次の例外がobtained-

ある

PROCEDURE S_S_TEST( 
    test_OUT OUT OAS_TYPES.REFCURSOR 
) 
AS 
BEGIN 
    OPEN test_OUT FOR  
     SELECT * 
     FROM table_p; 
    CLOSE test_OUT; 
END S_S_TEST; 

を作成するか、または置き換えます

java.sql.SQLException: Cursor is closed. at oracle.jdbc.driver.T4CResultSetAccessor.getCursor(T4CResultSetAccessor.java:323) at oracle.jdbc.driver.ResultSetAccessor.getObject(ResultSetAccessor.java:85) at oracle.jdbc.driver.OracleCallableStatement.getObject(OracleCallableStatement.java:1401) at com.ibm.ws.rsadapter.jdbc.WSJdbcCallableStatement.getObject(WSJdbcCallableStatement.java:443) 

エラーの内容とその修正方法を理解しようとしています。誰かが私を助けてくれますか?

ありがとうございます!

答えて

4

ストアドプロシージャを呼び出すクライアントは、カーソルを閉じる必要があります。コードを削除してください: CLOSE test_OUT;

クライアントが閉じます。この場合、クライアントはストアドプロシージャを呼び出すJDBCプログラムです。

関連する問題