Oracle JDBC调用过程,出现不支持的SQL92

Oracle JDBC调用过程,出现不支持的SQL92,oracle,jdbc,procedure,Oracle,Jdbc,Procedure,我在google中搜索,发现这个错误可能是因为“{}”,但是没有“{}”我怎么能调用oracle过程呢?或者我应该使用哪个令牌?大括号对Oracle不起作用。把它们拿出来,你就可以走了。Oracle传统上使用的占位符后面跟有字符“:”和单词 如果您不喜欢call关键字,可以使用: “BEGIN get_id(?,?);END;”需要一个JDBC驱动程序来支持{call..}JDBC escape,我很惊讶Oracle驱动程序不支持它。我宁愿认为原因是在调用转义内。@markrotteveel,如

我在google中搜索,发现这个错误可能是因为“{}”,但是没有“{}”我怎么能调用oracle过程呢?或者我应该使用哪个令牌?

大括号对Oracle不起作用。把它们拿出来,你就可以走了。Oracle传统上使用的占位符后面跟有字符“:”和单词

如果您不喜欢call关键字,可以使用:
“BEGIN get_id(?,?);END;”

需要一个JDBC驱动程序来支持
{call..}
JDBC escape,我很惊讶Oracle驱动程序不支持它。我宁愿认为原因是
在调用转义内。@markrotteveel,如果“;”如果是原因,那么我会投票否决这个问题,因为这意味着缺乏研究在调用转义内(因此使用
{call get_id(?,?)}
    callStmt= conn.prepareCall("{call get_id(?,?,?);}");
    callStmt.setString(1,"T_CUSTOMER");
    callStmt.registerOutParameter(2,Types.VARCHAR);
    callStmt.setString(3,"GD");
    callStmt.execute();
    String string = callStmt.getString(2);
    System.out.println(string);