Java
如何通過 JDBC 為 Oracle 執行 PL/SQL 過程?
我有一個帶有 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();