首页 > 解决方案 > 立即执行?

问题描述

为什么我们execute immediate在 PL/SQL 中使用命令?

我正在查看以前同事编写的一些程序,我看到该人已经使用execute immediate了很多时间来记录程序的进度以及截断表格时。

我的问题是他为什么要这样做?我们不能像在 pl/sql proc 中那样截断表吗?

标签: oracleplsqldynamic-sql

解决方案


Oracle 不允许在可执行块中执行 DDL。这是不允许的

begin
    alter table . . . 
end;

最初甲骨文有SYS.DBMS_DDL包来完成这项工作。但是使用起来很麻烦,所以oracle引入了execute immediate大约v9。


推荐阅读