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