SQLSyntaxErrorException:ORA-00900:使用Java的SQL语句无效
我需要通过Java EXEC DBMS_STREAMS_ADM.SET_TAGtag=>HEXTORAW'17'使用以下命令:;使用一个简单的数据库客户端。与其他常见的select/delete查询一起,但它抱怨SQL语句无效 我试图删除exec作为PL/SQL的函数,并用{}调用它,但仍然得到相同的错误 EXEC是SQL*加上Oracle的原生SQL客户端语法,您不能在这里使用它。调用存储过程的JDBC语法是通过CALL指令实现的。您可以省略call标记=>HEXTORAW'17'中的参数名。例如:SQLSyntaxErrorException:ORA-00900:使用Java的SQL语句无效,java,Java,我需要通过Java EXEC DBMS_STREAMS_ADM.SET_TAGtag=>HEXTORAW'17'使用以下命令:;使用一个简单的数据库客户端。与其他常见的select/delete查询一起,但它抱怨SQL语句无效 我试图删除exec作为PL/SQL的函数,并用{}调用它,但仍然得到相同的错误 EXEC是SQL*加上Oracle的原生SQL客户端语法,您不能在这里使用它。调用存储过程的JDBC语法是通过CALL指令实现的。您可以省略call标记=>HEXTORAW'17'中的参数名。
try (CallableStatement cs
= myConnection.prepareCall("{ call DBMS_STREAMS_ADM.SET_TAG(HEXTORAW(?)) }")) {
cs.setString(1, "17");
cs.execute();
}
目前尚不清楚您当前使用的是哪种DBClient,请告诉我们,但以下方法也可以:
DBClient.execute("{ call DBMS_STREAMS_ADM.set_tag(HEXTORAW('17')) }");
或者
DBClient.execute("begin DBMS_STREAMS_ADM.SET_TAG(HEXTORAW('17')); end;");
在Java中如何调用存储过程?请包括您拥有的代码.DBClient.executeexec DBMS_STREAMS_ADM.set_tagtag=>HEXTORAW'17';EXEC是SQL*Plus语法,您不能在这里使用它。您可以改用或调用语法;但它对DBMS\u STREAMS\u ADM的抱怨必须现在就解决。最后出现了一些用户权限问题。谢谢