3

プリペアド ステートメントを介してストアド プロシージャを呼び出すときにこの例外が発生しましたが、呼び出し可能なステートメントでは機能します。voltdb でストアド プロシージャを呼び出すために callable ステートメントを使用する必要があるかどうか疑問に思っていますか?

String sql = "{call get_city_by_country(?)}";
PreparedStatement stat = conn.prepareStatement(sql);
stat.setString(1, "china");
ResultSet results = stat.executeQuery();

以下の例外をスローします。

Exception in thread "main" java.sql.SQLException: Cannot submit statement in current context: '{call get_city_by_country(?)};'.
at org.voltdb.jdbc.SQLError.get(SQLError.java:45)
at org.voltdb.jdbc.JDBC4PreparedStatement.executeQuery(JDBC4PreparedStatement.java:121)

これはうまくいきます。

CallableStatement proc = conn.prepareCall(sql);
proc.setString(1, "china");
ResultSet results = proc.executeQuery();
4

1 に答える 1