我是pl / sq。
的新手所以,我试图从Java调用pl / sql存储过程,但出现错误:
wrong number or types of arguments in call to ‘searchuser’.
我在哪里可以找到最具体的例外?
oracle中是否有一些错误日志或错误表?我该如何调试这类问题?
谢谢!
答案 0 :(得分:1)
有一件事是如果你从java调用存储过程:不要忘记注册函数结果。示例Java代码:
CallableStatement cstmt = connection.prepareCall("{? = call xxx.checkArea(?,?)}");
// the 1st Parameter is the result of the function checkArea
cstmt.registerOutParameter(1, Types.INTEGER); // Function Return
cstmt.setInt(2, status); // Parameter 1 (in)
cstmt.registerOutParameter(3, Types.INTEGER); // Parameter 2 (out)
// execute the call
cstmt.execute();
// check the results
sessionId = cstmt.getInt(1); // Session-ID
rows = cstmt.getInt(3); // Rows
PL / SQL函数声明如下:
function checkArea(pi_area in number,
po_rows out number) return number;