PostgreSQL:用JDBC调用函数

时间:2014-07-14 16:30:14

标签: postgresql jdbc

如下所示:http://www.postgresql.org/docs/7.4/static/jdbc-callproc.html

// Turn transactions off.
con.setAutoCommit(false);
// Procedure call.
CallableStatement upperProc = con.prepareCall("{ ? = call upper( ? ) }");
upperProc.registerOutParameter(1, Types.VARCHAR);
upperProc.setString(2, "lowercase to uppercase");
upperProc.execute();
String upperCased = upperProc.getString(1);
upperProc.close();

我可以改为:

// Turn transactions off.
con.setAutoCommit(false);
// Procedure call.
CallableStatement upperProc = con.prepareCall("{call upper( ? ) }");
upperProc.setString(2, "lowercase to uppercase");
upperProc.execute();
upperProc.close();

我刚删除了?在呼叫上层之前。我的查询只是插入所以我不需要一个值。我想保留它在这个格式,因为mysql也使用这种格式,因此我可以在JAVA中重用很多代码。

1 个答案:

答案 0 :(得分:2)

JavaDoc for CallableStatement显示没有返回值的语法:

   {call <procedure-name>[(<arg1>,<arg2>, ...)]}

所以,如果PgJDBC不接受它是一个错误。

您可以省略? =