Немедленно выполнить с несколькими операторами SQL - PullRequest
0 голосов
/ 15 ноября 2011

Вот мой PL / SQL.

execute immediate '
create table Alex_Test2(col1 varchar2(100));
/
drop table Alex_Test2;
/
';

В динамическом SQL таблица создается, а затем немедленно удаляется. Самое смешное, что таблица успешно создана и удалена, но я получил ошибку.

Error starting at line 1 in command:
execute immediate '
Error report:
ORA-06550: line 1, column 17:
PLS-00103: Encountered the symbol "; END;" when expecting one of the following:

   := . ( @ % ;
06550. 00000 -  "line %s, column %s:\n%s"
*Cause:    Usually a PL/SQL compilation error.
*Action:
table ALEX_TEST2 created.
table ALEX_TEST2 dropped.

Error starting at line 6 in command:
'
Error report:
Unknown Command

Операторы SQL, фактически набранные пользователем. Я не могу избежать символов, таких как ; и /. Как я могу исправить эту проблему? Или как я могу обойти эту ошибку?

Однако мне все еще нужно вести журнал. Я ожидаю, что журнал просто

table ALEX_TEST2 created.
table ALEX_TEST2 dropped.

Спасибо!

1 Ответ

2 голосов
/ 15 ноября 2011

Вы не можете манипулировать строкой запроса перед ее выполнением?Если у вас нет возможности сделать это, то что вы можете сделать?

Похоже, вам просто нужно найти и заменить строку запроса перед ее запуском.

...