【发布时间】:2014-11-24 10:52:31
【问题描述】:
我正在使用 postgresql,并且我创建了一些存储过程。现在我想通过 jdbc 访问存储过程并处理结果。存储过程的结果是整数或 TABLE。
我发现了以下内容:
CallableStatement upperProc = conn.prepareCall("{ ? = call upper( ? ) }");
upperProc.registerOutParameter(1, Types.VARCHAR);
upperProc.setString(2, "lowercase to uppercase");
upperProc.execute();
String upperCased = upperProc.getString(1);
upperProc.close();
有了这个,我想我可以处理单个整数返回,但是如何处理 TABLE 返回?
【问题讨论】:
-
你不需要
CallableStatement。对返回标量的函数使用PreparedStatement.executeQuery()和select upper(?),对返回表的函数使用select * from foo(?)。 -
请不要混淆其他人-upper() 是postgresql 中的一个函数,而不是一个过程
标签: java postgresql stored-procedures jdbc