java.sql.SQLException:ORA-00604:递归SQL级别1发生错误ORA-01003:没有语句解析异常

时间:2015-04-10 15:35:24

标签: java oracle jdbc plsql

我很感激有人可以帮我解决这个问题:

  

获取java.sql.SQLException:ORA-00604:在递归SQL级别1发生错误ORA-01003:没有语句解析异常

我尝试从toad执行存储过程并且它给了我table or view does not exists的正确异常,但是当它从Java执行的存储过程时我遇到了这个问题。任何人都能说出这个Java问题吗?

我正在调用的存储过程采用输入参数。无法共享存储过程。

1 个答案:

答案 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();
    }
  }
}