"ORA-00911: invalid character" 从 java 调用 oracle 过程时出现
"ORA-00911: invalid character" coming when calling oracle procedure from java
我有一个程序,当我 运行 在 sql 开发人员时工作正常。
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:无效 character.My 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 中做错了什么 code.I 已经尝试了很多方法但都没有 wroking.Can 有人帮助我吗?
将分配给 proc3StoredProcedure
的字符串更改为 { call test(?,?,?) }
。
Docs for JDBC SQL escape syntax here。 (过程调用的语法在链接页面的最底部)。
我有一个程序,当我 运行 在 sql 开发人员时工作正常。
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:无效 character.My 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 中做错了什么 code.I 已经尝试了很多方法但都没有 wroking.Can 有人帮助我吗?
将分配给 proc3StoredProcedure
的字符串更改为 { call test(?,?,?) }
。
Docs for JDBC SQL escape syntax here。 (过程调用的语法在链接页面的最底部)。