1

パラメータ名を指定してストアド プロシージャを呼び出そうとしましたが、JDBC がパラメータを受け入れることができませんでした。それは言います:

Method org.postgresql.jdbc4.Jdbc4CallableStatement.setObject(String,Object) is not yet implemented.

私が使うpostgresql-9.2-1003.jdbc4

これを行う他の方法はありますか?

シーケンス番号を指定するだけでよいことはわかっています。しかし、パラメータ名を指定する方が便利なので、指定したいと思います。

私のコード:

String call_statement = "{ ? = call procedure_name(?, ?, ?) }";            
CallableStatement proc = connection.prepareCall(call_statement);
proc.registerOutParameter(1, Types.OTHER);            
proc.setObject("param1", 1);
proc.setObject("param2", "hello");
proc.setObject("param3", true);
proc.execute();
ResultSet result = (ResultSet)proc.getObject(1);
4

2 に答える 2

2

残念ながら、パラメーター名の使用は、PostgreSQL データベース用の JDBC 4 ドライバーの実装でサポートされている機能ではありません。この JDBC 4 実装のコードについては、 GrepCodeを参照してください。

ただし、引き続き整数 (変数またはリテラル) を使用してパラメーターの位置を示すことができます。

于 2013-11-01T05:52:08.130 に答える