Java

如何通過 JDBC 為 Oracle 執行 PL/SQL 過程?

  • October 4, 2013

我有一個帶有 Oracle DB 的 Java webapp,我嘗試在數據遷移腳本的末尾執行此語句:

EXEC DBMS_STATS.GATHER_TABLE_STATS (ownname => 'MY_SCHEMA', tabname => 'MY_TABLE', estimate_percent => dbms_stats.auto_sample_size);

它可以在 sql*plus 中工作,但不能通過 JDBC:

"Error: ORA-00900: invalid SQL statement"

我究竟做錯了什麼?

而不是 EXEC,你應該把它放在 begin … end 之間,或者使用 { call } 語法。這是文件中的一個範例:

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

CallableStatement cs = connection.prepareCall("{call MYPROCEDURE }");
cs.execute();

引用自:https://dba.stackexchange.com/questions/49723