我试图从我的java应用程序中调用一个包中的过程但是收到错误。代码设置如此......
------ -----的Java
Connection = conn;
String call_code="{? = call MY_PROCEDURE.Process_vale(?,?,?)}";
CallableStatement Process_cs=conn.prepareCall(call_code);
String bValue= "12345";
Process_cs.setString(1, bValue);
Process_cs.registerOutParameter(2, Types.INTEGER);
Process_cs.registerOutParameter(3, Types.VARCHAR);
Process_cs.execute();
程序设置如下:
PROCEDURE Process_value (bValue VARCHAR2, PN_CD OUT NUMBER, PN_MSG OUT VARCHAR2).....
我看到的错误是:
java.sql.SQLException:在index :: 4
处缺少IN或OUT参数我很好奇它为什么提到4的索引,当程序只有3个参数时,我相信我在这里错过了一个关键的事实。
答案 0 :(得分:0)
你在这里犯了一些严重的错误。首先因为您正在调用一个过程,您将不会获得任何返回值,只有函数可以具有返回值。所以你必须按如下方式调用该程序。
String call_code="{call MY_PROCEDURE.Process_vale(?,?,?)}";
如果您的过程第一个参数是IN类型而其他两个参数是OUT类型,则可以成功执行此操作。