0

当我在 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代码中做错了什么。我尝试了很多东西,但它没有工作。有人可以帮助我吗?

4

1 回答 1

0

将分配给的字符串更改proc3StoredProcedure{ call test(?,?,?) }

此处 JDBC SQL 转义语法的文档。(过程调用的语法在链接页面的最底部)。

于 2015-04-14T23:45:38.607 回答