我有一个带有 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)
我究竟做错了什么?
你应该把它放在 begin ... end 之间,而不是 EXEC,或者使用 { call } 语法。这是文档中的一个示例:
http://docs.oracle.com/cd/E11882_01/java.112/e16548/getsta.htm#i1014127