使用多个SQL语句执行Immediate

时间:2011-11-14 23:27:33

标签: plsql symbols execute-immediate

这是我的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 个答案:

答案 0 :(得分:2)

在执行查询字符串之前,您无法操作它?如果你没有这样做的能力那么你有什么能力呢?

听起来你只需要在运行它之前对查询字符串进行查找和替换。