oracle - Execute Immediate 语句可以嵌套在另一个 Execute Immediate 中吗
问题描述
我有一个存储过程,其中 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 语句。我认为答案是肯定的。
解决方案
是的你可以。
begin
execute immediate
'begin
execute immediate ''begin dbms_output.put_line(''''Hello''''); end;'';
end;';
end;
我认为这是通往地狱的道路,但是是的,这是可能的。
推荐阅读
- angular - 如何将数据传递给从父组件路由的子组件?
- sql - Oracle 动态创建用于更新分区表的脚本
- ruby-on-rails - 将对象数组(从 OpenStruct 创建)转换为值数组
- python - 将具有三个元素的元组转换为字典
- c# - OpenCL 内核静默运行失败
- html - Bootstrap 4:无法垂直和响应地居中图像
- apache - Apache SSL 证书放置在正确的目录中,但 SSL 证书在浏览器中无效
- ios - Xcode 10 打开菜单中的 Swift-Icon 是什么?
- visual-studio-2017 - VSIX 如何获取当前快照文件名?
- java - 多模块项目中的 Sprint Boot