我有一个oracle函数。函数名称是TESTFUNCTION。我使用的代码是
PreparedStatement pStmt = con.prepareStatement("SELECT dbo.TESTFUNCTION(?,?)") ;
我也设置了参数。
ResultSet rs = pStmt.executeQuery();
此代码将产生以下异常
java.sql.SQLSyntaxErrorException: ORA-00923: FROM keyword not found where expected
任何帮助!!
答案 0 :(得分:0)
当您尝试执行SELECT语句时,会发生此错误,并且您错过或错放了FROM关键字。尝试检查from关键字。
查看here了解详情。
注意:在这种情况下,最好使用Callable Statement而不是预备语句。
在这种情况下,你可以使用callable语句:
String SQL = "{call dbo.TESTFUNCTION(?,?)}";
cstmt = con.prepareCall (SQL);
答案 1 :(得分:0)
PreparedStatement对SQL查询很有用,而对函数调用则没有用。对于函数调用和存储过程,请使用CallableStatement。
答案 2 :(得分:0)
您缺少FROM关键字。改为:
PreparedStatement pStmt = con.prepareStatement("SELECT dbo.TESTFUNCTION(?,?) FROM dual;") ;