如何通过 JDBC 为 Oracle 执行 PL/SQL 过程?

Mic*_*ing 3 oracle java

我有一个带有 Oracle DB 的 Java webapp,我尝试在数据迁移脚本的末尾执行此语句:

EXEC DBMS_STATS.GATHER_TABLE_STATS (ownname => 'MY_SCHEMA', tabname => 'MY_TABLE', estimate_percent => dbms_stats.auto_sample_size);
Run Code Online (Sandbox Code Playgroud)

它适用于 sql*plus,但不适用于 JDBC:

"Error: ORA-00900: invalid SQL statement"
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

Bal*_*app 5

你应该把它放在 begin ... end 之间,而不是 EXEC,或者使用 { call } 语法。这是文档中的一个示例:

http://docs.oracle.com/cd/E11882_01/java.112/e16548/getsta.htm#i1014127