最近,我创建了一个 postgresql 的函数,如下所示:
CREATE OR REPLACE FUNCTION POSTPRC(A IN NUMERIC)
**RETURNS VOID**
AS
$$
BEGIN
... ...
END;
$$ LANGUAGE PLPGSQL;
如何使用 java 调用它,我使用了如下代码:
CallableStatement upperProc = con.prepareCall("{ ? = call POSTPRC( ? ) }");
upperProc.registerOutParameter(1, Types.NULL);
upperProc.setInt(2,23);
int flag=upperProc.executeUpdate();
但是每次都会出现错误,怎么办才能解决这个问题?
异常显示为:java.lang.ArrayIndexOutOfBoundsException: 2。
具有相应参数的过程 POSTPRC 可以在 pgAdminIII 工具中成功执行。
postgresql 应该使用语句 likes-{? = call procedure(?,?,?)},这是通过java调用的唯一方法。我已经测试了 {call procedure(?,?,?)} 等语句。每次都失败。其实postgresql的过程是函数,如果我们要调用postgresql的过程,我们最好定义postgresql的过程,不带参数或返回值......
欢迎任何意见!
谢谢