Я пытаюсь создать процедуры Oracle PL / SQL и выполнить их через Oracle JDBC (тонкий драйвер).Вот полный сценарий PL / SQL:
begin
for i in (select owner, constraint_name, table_name from all_constraints where owner = 'SCHEMA' and status = 'ENABLED') LOOP
execute immediate 'alter table SCHEMA.'||i.table_name||' disable constraint SCHEMA.'||i.constraint_name||'';
end loop;
end;
/
begin
for i in (select table_name from all_tables where owner = 'SCHEMA') LOOP
execute immediate 'truncate table SCHEMA.'||i.table_name||'';
end loop;
end;
/
begin
for i in (select owner, constraint_name, table_name from all_constraints where owner = 'SCHEMA' and status = 'DISABLED') LOOP
execute immediate 'alter table SCHEMA.'||i.table_name||' enable constraint SCHEMA.'||i.constraint_name||'';
end loop;
end;
/
В Java я делю на '/', поэтому каждый блок начала и конца выполняется в отдельной инструкции.Код Java для выполнения инструкции:
CallableStatement c = dbc.getConnection().prepareCall(sqlStatement);
c.executeUpdate();
Я получаю следующую ошибку:
java.sql.SQLSyntaxErrorException: ORA-00933: SQL command not properly ended
ORA-06512: at line 3
Как мне отформатировать это и выполнить PL / SQL в JDBC?
Обновлено: Для пояснения, все три оператора выполняются без разделителя '/', разделенного на.
Обновлено: Сервер-оракулследующая версия: Oracle Database 11g Release 11.2.0.1.0 - 64-разрядная версия