Oracle内置包:
1.提供对数据库基本功能的支持。
2.为SYS数据库模式所拥有。
Oracle内置包的类型:
1.事务处理。
2.应用开发。
3.数据库和应用管理。
4.内核支持。
事务处理包:
DBMS_ALERT:动态地向其它数据库回话发送消息。
DBMS_LOCk:用户显式锁定相关的表或记录。
DBMS_SQL:实现动态SQl。
DBMS_TRANSACTION:用于管理事务。
应用开发包:
DBMS_DESCRIBE:返回存储程序单元的参数信息。
DBMS_JOB:调度命名的PL/SQL程序定时执行。
DBMS_OUTPUT:在SQL*Plus中提供PL/SQL程序的文本输出 。
DBMS_PIPE:向其它数据库回话发送消息。
DBMS_SESSION:动态改变数据库会话的属性。
UTL_FILE:将PL/SQL的输出重定向到二进制文件中。
DBMS_JOB包:
定时调度命名PL/SQL子程序的运行。
创建一个定时调度队列。
列出所有调度执行的程序,以及它们执行的时间。
DBMS_PIPE包:
实现数据库管道:用于在数据库会话之间传递消息。
发送消息:使用PACK_MESSAGE和SEND_MESSAGE过程。
接受消息:使用RECEIVE_MESSAGE和UNPACK_MESSAGE过程。
数据库和应用管理包:
DBMS_APPLICATION_INFO:记录每个用户会话所运行的程序的相关信息。
DBMS_DDL:提供编译程序单元和分析数据库对象的过程。
DBMS_SHARED_POOL:用于shared pool内存管理
DBMS_SPACE:用于管理数据的物理存储信息。
DBMS_UTILITY:提供编译所有程序单元和分析所有数据库对象的过程。
DBMS_STANFERD:包含PL/SQL语言的最基本的函数。
内核支持包:
STANDARD:定义所有内置函数和过程,数据类型和PL/SQL数据类型。
DBMS_SNAPSHOT:用于管理数据库快照。
DBMS_REFRESH:用于刷新数据库快照。
DBMS_STANDARD:包含PL/SQL语言的最基本的函数。
动态SQL:
允许用户在PL/SQL中动态地拼凑SQL语句,而将对数据库对象的相关验证工作放到执行程序的过程中进行。
基于DBMS_SQL包。
创建含DML语句的动态SQL程序:
用OPEN_CURSOR打开一个游标,为动态SQL的执提供空间。
通过字符串操作,拼凑一个字符串,这个字符串本身就是一个合法的SQL语句。
使用DBMS_SQL.PARSE分析该字符串。
使用DBMS_SQL.BIND_VARIABLE联编输入变量。
使用DBMS_SQL.EXECUTE和/或使用。
关闭游标。
创建含DDL语句的动态SQL程序:
用OPEN_CURSOR打开一个游标,为动态SQL的执行提供空间。
通过字符串操作,拼凑一个字符串,这个字符串本身是一个合法的SQL语句:在动态DDL语句中
不能使用联编变量,所以不需要调用BIND_VARIABLE过程。
使用DBMS_SQL.PARSE分析该字符串:动态DDL语句在PARSE时被执行,没有必要调用
EXECUTE函数
关闭游标。
创建含SELECT语句的动态SQL程序:
用OPEN_CURSOR打开一个游标,为动态SQL的执行提供空间。
拼凑一个字符串,这个字符串本身是一个合法的SQL语句。
使用DBMS_SQL.PARSE分析该字符串
使用DBMS_SQL.BIND_VARIABLE联编输入变量
使用DBMS_SQL.EXECUTE、DBMS_SQL.FETCH_ROW、
DBMS_SQL.COLUMN_VALUE、以及DBMS_SQL.VARIABLE_VALUE执行查询并提取结果。
用动态SQL创建匿名块:
打开游标。
拼凑一个字符串,这个字符串本身是一个合法的SQL语句。
使用DBMS_SQL.PARSE分析该字符串。
绑定输入和输出变量。
执行动态语句。
获取动态语句。
关闭游标。