这是我的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.
谢谢!
答案 0 :(得分:2)
在执行查询字符串之前,您无法操作它?如果你没有这样做的能力那么你有什么能力呢?
听起来你只需要在运行它之前对查询字符串进行查找和替换。