Plsql 使用多个SQL语句执行Immediate

Plsql 使用多个SQL语句执行Immediate,plsql,symbols,execute-immediate,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

这是我的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.

谢谢

您无法在执行查询字符串之前对其进行操作吗?如果你没有能力那么你有能力做什么


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

动态SQL由用户键入,我无法更改。我可以控制所有其他事情。我需要“查找和替换”什么?好吧,你只是说你不能阻止他们进入。。。但您可以在运行之前操纵它们的输入。在SQL Server中,我将使用replace函数:。在你的数据库管理系统中可能也是这样,但如果不只是做一个谷歌搜索,我相信你会发现它的速度比你再次询问和我为你查找它并给出答案要快。