"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。 (过程调用的语法在链接页面的最底部)。