0

我有一个oracle函数。函数名称是 TESTFUNCTION。我使用的代码是

PreparedStatement pStmt = con.prepareStatement("SELECT dbo.TESTFUNCTION(?,?)") ;

我也设置了参数。

ResultSet rs = pStmt.executeQuery();

此代码将产生以下异常

java.sql.SQLSyntaxErrorException: ORA-00923: FROM keyword not found where expected

任何帮助!

4

3 回答 3

0

当您尝试执行 SELECT 语句并且您错过或放错了 FROM 关键字时,会发生此错误。尝试检查 from 关键字。

在这里查看详细信息。

注意:在这种情况下,最好使用Callable Statement而不是prepared statement。

在这种情况下,您可以使用 callable 语句:

String SQL = "{call dbo.TESTFUNCTION(?,?)}";
   cstmt = con.prepareCall (SQL);
于 2012-08-31T07:11:31.413 回答
0

PreparedStatement对SQL 查询有用,对函数调用没有用。对于函数调用和存储过程,请使用CallableStatement

于 2012-08-31T07:14:16.470 回答
0

您缺少 FROM 关键字。改成这样:

PreparedStatement pStmt = con.prepareStatement("SELECT dbo.TESTFUNCTION(?,?) FROM dual;") ;
于 2016-11-17T12:34:56.800 回答