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

JDBC call procedure , occur non supported SQL92

    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);

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

大括号不适用于 Oracle。把它们拿出来,你应该可以走了。 Oracle 传统上使用字符“:”后跟一个词的占位符。

如果你不喜欢 call 关键字,你可以使用这个: "BEGIN get_id(?,?,?); END;"