0
这是我的PL/SQL。使用多个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中,我将使用替换函数:http://msdn.microsoft.com/en-us/library/ms186862.aspx。在你的dbms中可能是一样的,但如果不是只是做一个谷歌搜索,我相信你会发现它比你要求我再次提问并回答答案要快。 –