概述
提供了在PL SQL块中执行DDL语句的方法,也提供了一些DDL的特殊管理方法
包组成
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');
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');
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表示只被触发一次。
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时总是被触发。