oracle学习笔记
目录
1.什么是程序包
程序包是对相关过程、函数、变量、游标和异常等对象的封装
程序包由规范和主体两部分组成
2.创建包规范语言
程序包规范
create[or replace] package package_name
is|as
[Public item declarations]
[Subprogram specification]
end [package_name];
程序包主体
create [or replace] package body package_name
is|as
[Private item declarations]
[Subprogram bodies]
[begin Initialization]
end [package_name];
创建程序包
create or replace package pack_1
is
-- 声明过程
procedure proc_hello(name varchar2);
-- 声明函数
function fun_hello(name varchar2) return varchar2;
end;
创建包主体
create or replace package body pack_1
is
-- 过程实现
procedure proc_hello(name varchar2) is
begin
dbms_output.put_line('hello '||name);
end;
-- 函数实现
function fun_hello(name varchar2) return varchar2 is
begin
return 'hi '||name;
end;
end;
调用程序包
begin
pack_1.proc_hello('jack');
end;
3.系统内置程序包
程序包名称 | 说明 |
STANDARD和DBMS_STANDARD | 定义和扩展PL/SQL语言环境 |
DBMS_LOB | 提供对 LOB数据类型进行操作的功能 |
DBMS_OUTPUT | 处理PL/SQL块和子程序输出调试信息 |
DBMS_RANDOM | 提供随机数生成器 |
DBMS_SQL | 允许用户使用动态 SQL |
DBMS_XMLDOM | 用DOM模型读写XML类型的数据 |
DBMS_XMLPARSER | XML解析,处理XML文档内容和结构 |
DBMS_XMLQUERY | 提供将数据转换为 XML 类型的功能 |
DBMS_XSLPROCESSOR | 提供XSLT功能,转换XML文档 |
UTL_FILE | 用 PL/SQL 程序来读写操作系统文本文件 |
常用内置程序包
DBMS_OUTPUT 包输出 PL/SQL 程序的调试信息
DBMS_LOB 包提供操作 LOB 数据的子程序
DBMS_XMLQUERY 将查询结果转换为 XML 格式
DBMS_RANDOM 提供随机数生成器
随机字符
select dbms_random.string('P',8 ) from dual ;
select dbms_random.string('X',8 ) from dual ; -- 大写字母随机数
随机五位数
select round(dbms_random.value()*100000) from dual;
4.程序包的优点
模块化
更轻松的应用程序设计
信息隐藏
新增功能(过程可以重载,可以定义公用变量或游标)
性能更佳