Oracle 原理: 初步认识程序包

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

或者可以直接下载 :

https://download.csdn.net/download/superSmart_Dong/12603260

猜你喜欢

转载自blog.csdn.net/superSmart_Dong/article/details/107217003