九、dbms_ddl(提供了在PL/SQL块中执行DDL语句的方法)

时间:2021-07-06 17:08:13

1、概述

作用:提供了在PL/SQL块中执行DDL语句的方法,并且也提供了一些DDL的特殊管理方法.

2、包的组成

1)、alter_compile
说明:用于重新编译过程、函数和包
语法:dbms_ddl.alter_compile(type varchar2,schema varchar2,name varchar2);
其中type指定对象类型(procedure,function,package,trigger),schema指定对象所在方案,name指定对象名
例子:dbms_ddl.alter_compile('PROCUDURE',NULL,'ADD_EMP');

2)、analyze_object
作用:用于分析表、索引、簇并生成统计数据
语法:dbms_ddl.analyze_object(type varchar2,schema varchar2,name varchar2,method varchar2,
estimate_rows number default null,estmate_percent number default null,
method_opt varchar2 default null,partname varchar2 default null);
其中type指定对象类型(table\index\delete),method指定分析方法(compute,estimate,delete),estimate_rows指定要顾忌的行数,estimate_percent指定要顾忌的百分比,
method_opt指定分析选项(for table,for all columns等),partname指定要分析的分区。
例子:exec dbms_ddl.analyze_object('TABLE',null,'EMP','COMPUTE');

3)、is_trigger_fire_once
作用:用于检测特定的DML或DDL触发器是否只执行一次
语法:dbms_ddl.is_trigger_fire_once(trig_owver in varchar2,trig_name in varchar2) return boolean;
其中,trig_owver指定触发器所有者,trig_name指定触发器名,返回true表示只被触发一次。

4)、set_trigger_firing_property
作用:用于设置DML或DDL触发器的触发属性
语法:dbms_ddl.set_trigger_firing_property(trig_owner in varchar2,trig_name in varchar2,fire_once in boolean);
其中,fire_once指定触发器属性,当设置为true时只触发一次,false时总是被触发。