oracle 中的程序包和C中的类库,JAVA中的package包类似。是过程、函数、变量、游标、异常的集合。程序包由规范和主体两部分组成。规范主要用于声明。声明公有对象(类型、常量、变量、异常、游标规范、子程序规范)类似于C语言中的hpp和public。主体主要用于声明程序包私有对象和实现规范中的子程序和游标,类似于C语言中的cpp和private。
在PL/SQL Developer 的菜单栏中点VIEW的Object Browser,选中Package ,新建new。
--------程序包规范----------
create or replace package pckname is
-- Author : HU
-- Created : 2020/7/8 23:07:05
-- Purpose : asd
-- Public type declarations
type <TypeName> is <Datatype>;
-- Public constant declarations
<ConstantName> constant <Datatype> := <Value>;
-- Public variable declarations
<VariableName> <Datatype>;
-- Public function and procedure declarations
function <FunctionName>(<Parameter> <Datatype>) return <Datatype>;
end pckname;
程序包主体
create or replace package body packname is
-- Private type declarations
type <TypeName> is <Datatype>;
-- Private constant declarations
<ConstantName> constant <Datatype> := <Value>;
-- Private variable declarations
<VariableName> <Datatype>;
-- Function and procedure implementations
function <FunctionName>(<Parameter> <Datatype>) return <Datatype> is
<LocalVariable> <Datatype>;
begin
<Statement>;
return(<Result>);
end;
begin
-- Initialization
<Statement>;
end packname;
----调用程序包中的函数和变量
packagename.objectname。你会发现在规范中声明过的对象可以访问得到,而在主体中声明的对象是访问不到的。
另外在包头(规范)中的游标声明要用return 语句
cursor curname return <DataType>
在包体中
cursor curname return <DataType> is <statement> .
select *from USER_OBJECTS --可查看子程序和程序包的信息
select *from USER_SOURCE --可查看子程序和程序代码
常用的程序包
程序包名称 |
说明 |
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_Alert | 不用轮询就允许应用命名并发出警告条件信号的过程与函数 |
DBMS_DDL | 允许获取PL/SQL程序内部一定数量的DDL语句的过程 |
DBMS_Describe | 为存储过程与函数描述API的过程 |
DBMS_Job | 管理BLOBs、CLOBs、NCLOBs与BFILEs的过程与函数 |
DBMS_Output | 允许PL/SQL程序生成终端输出的过程与函数 |
DBMS_Pipe | 允许数据库会话使用管道通信(通信频道)的过程与函数 |
DBMS_SQL | 在PL/SQL程序内部执行动态SQL的过程与函数 |
DBMS_Utility | DBMS_Utility |
更多的包请查询: select * from dba_objects where OBJECT_TYPE ='PACKAGE'
对应的使用方法和说明: 光标对准按F1查看帮助文档,没有帮助文档的按F1后点击download下载。下载完后在对应目录解压后点build
或者可以直接下载 :