我很感激有人可以帮我解决这个问题:
获取java.sql.SQLException:ORA-00604:在递归SQL级别1发生错误ORA-01003:没有语句解析异常
我尝试从toad执行存储过程并且它给了我table or view does not exists
的正确异常,但是当它从Java执行的存储过程时我遇到了这个问题。任何人都能说出这个Java问题吗?
我正在调用的存储过程采用输入参数。无法共享存储过程。
答案 0 :(得分:2)
ORA-01003
错误表明您没有通过JDBC传递可解析语句以供Oracle处理。请检查您的Java代码是否正确调用该过程。
由于您尚未披露有关程序的任何细节(包括参数的数量和类型),因此很难给出具体的建议;下面是一个如何调用过程my_procedure
的示例片段,它将两个参数作为输入。
private static final String CALL_PROCEDURE = "{ call my_procedure(?, ?) }";
...
private void callMyProcedure(Connection c) throws SQLException {
CallableStatement cs = null;
try {
cs = c.prepareCall(CALL_PROCEDURE);
cs.setString(1, "firstValue");
cs.setString(2, "secondValue");
cs.execute();
} finally {
if (cs != null) {
cs.close();
}
}
}