【发布时间】:2019-03-14 16:09:13
【问题描述】:
我有一个存储过程,其中 Execute Immediate 将调用“Begin ... End”块,其中包含另一个 Execute Immediate,只有在满足特定条件时才会调用。
“Begin... End clock”中的内部 Execute Immediate 命令用单引号括起来。所以看起来像
BEGIN
...SOME STUFF HERE...
FOR ..... LOOP
EXECUTE IMMEDIATE
'BEGIN
IF (condition) THEN
EXECUTE IMMEDIATE 'DML STRING'
END IF
END;'
END LOOP;
END;
这引出了另一个问题,是否可以从循环中调用 Execute Immediate 语句。我认为答案是肯定的。
【问题讨论】:
-
试试吧,让我们知道会发生什么!
-
我认为一般来说它应该可以工作,但你可能会遇到一些引号问题。我建议检查您的设计并避免嵌套字符串。
-
只是因为它打扰了我(对不起):en.wikipedia.org/wiki/Begging_the_question
标签: oracle stored-procedures plsql dynamic-sql