0

プロシージャが out パラメータとして返すカーソルにアクセスしているときに、java.lang.NullPointerException が発生します。

詳細は次のとおりです。

    CallableStatement pstmt = conn.prepareCall("{call PKP_UTIL.GET_VALUE(?,?,?)}");
    pstmt.setObject(1, parameter1);
    pstmt.setObject(2, parameter2);
    pstmt.registerOutParameter(3, OracleTypes.CURSOR);

    pstmt.executeUpdate(); //in this line all goes wrong

    ResultSet rs = (ResultSet)pstmt.getObject(3);

    while (rs.next()) {
         System.out.println(rs.getString(1) + "\t" + rs.getFloat(2) + "\t" + rs.getDate(3).toString());

    }

アプリケーションの詳細は次のとおりです。 - Tomcat 6 上の Restful WS - Oracle 11g ((11.2.0.2.0) - JDK 1.7 - JDBC Thin ドライバー

これと同じコードをデスクトップ アプリケーションで試してみると、うまく機能します。

4

1 に答える 1

0

pstmt.executeUpdate(); //この行ではすべてうまくいかない

驚かない。execute().Javadoc for具体的にexecuteUpdate()は、ステートメントは「INSERT、UPDATE、DELETE などの SQL データ操作言語 (DML) ステートメントでなければならない」と述べています。または、DDL ステートメントなど、何も返さない SQL ステートメント。

于 2013-10-22T00:11:20.953 に答える