当我在 sql developer 上运行时,我有一个运行良好的程序。
create or replace
PROCEDURE test(Order in varchar,Id in number ,status out varchar) As
logic
dbms_output.put_line(status);
end;
但是,当我从 java 调用此过程时,它显示错误 ORA-00911:无效字符。我的 java 代码是
String proc3StoredProcedure=null;
try {
proc3StoredProcedure = "{ test(?,?,?) }";
} catch (Exception e) {
// TODO Auto-generated catch block
System.out.println("exception");
e.printStackTrace();
}
CallableStatement cs = conn.prepareCall(proc3StoredProcedure);
cs.setEscapeProcessing(false);
cs.setString(1,"17");
cs.setInt(2,37);
cs.registerOutParameter(3, java.sql.Types.VARCHAR);
cs.execute();
String param4 = cs.getString(2);
System.out.println("param4=" + param4);
conn.close();
}
我在java代码中做错了什么。我尝试了很多东西,但它没有工作。有人可以帮助我吗?