博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
oracle中的程序包
阅读量:7125 次
发布时间:2019-06-28

本文共 1557 字,大约阅读时间需要 5 分钟。

一程序包的基本概念

程序包可将若干函数或者存储过程组织起来,作为一个对象进行存储。程序包通常由两部分构成,规范(specification)和主体(body)。程序报也可以包含常量和变量,包中的所有函数和存储过程都可以使用这些变量或者常量。

 

二 规范

1 创建规范(SQL窗口)

create or replace package pkg_staff as

       staffString varchar2(500);
       stafftAge number:=18;
       function get_staff_string return varchar2;
       procedure insert_staff(in_staff_id in number,in_staff_name in varchar2);
       procedure update_staff(in_staff_id in number);
       procedure delete_staff(in_staff_id in number);
end pkg_staff;

2 在数据字典中查看程序包规范的信息

select object_name,object_type,status from user_objects

where lower(OBJECT_NAME) = 'pkg_staff'

 

 

三 主体

所谓规范,就像面向对象编程中的接口,该规范的主体必须实现该规范的所有方法。Oracle会自动寻找与主体同名的规范,看是否全部实现了该规范函数或者存储过程。若没有,则编译错误。

1 创建主体

create or replace package body pkg_staff as

       function get_staff_string return varchar2 as
       begin
                return 'staff';
       end get_staff_string;
       procedure insert_staff(in_staff_id in number,in_staff_name in varchar2) as
       begin
                 insert into staff values (in_staff_id,in_staff_name);
       end insert_staff;
       procedure update_staff(in_staff_id in number) as
       begin
                 update staff set name = 'xy' where num = in_staff_id;
       end update_staff;
       procedure delete_staff(in_staff_id in number) as
       begin
                 delete from staff where num = '1';
       end delete_staff;
end pkg_staff;

2 在数据字典中查看程序包主体的信息

select object_name,object_type,status from user_objects

where lower(OBJECT_NAME) = 'pkg_staff'

 

 

四调用程序包中的函数或者存储过程

调用函数(SQL window)
select pkg_staff.get_staff_string() as result from dual

调用存储过程(Command window)
begin
pkg_staff.delete_staff(1);
end;
/

本文转自IT徐胖子的专栏博客51CTO博客,原文链接http://blog.51cto.com/woshixy/989010如需转载请自行联系原作者

woshixuye111

你可能感兴趣的文章
对 IE11 用户而言,不更新将意味着没有安全修正
查看>>
AngularJS 是否能满足企业应用的安全需求
查看>>
《Cisco QoS认证考试指南(第2版)》——6.6节基础小结
查看>>
《UNIX环境高级编程(第3版)》——2.2 UNIX标准化
查看>>
RubySpec 重生:破茧成蝶
查看>>
《SolidWorks 2014中文版机械设计从入门到精通》——1.7 参考基准面
查看>>
《运维工程师成长之路》一第2章 企业互联网根基之服务器初始化
查看>>
《编写高质量Python代码的59个有效方法》——第15条:了解如何在闭包里使用外围作用域中的变量...
查看>>
《嵌入式系统开发之道——菜鸟成长日志与项目经理的私房菜》——02-09项目沟通(Communication)管理...
查看>>
HTTP/SSH/TCP/Ping并行客户端 Parallec
查看>>
《OSPF和IS-IS详解》一第2章 理解BGP的构件块
查看>>
2016 年 Android 市场的 8 个大胆预测
查看>>
timeago.js 1.1.0,一个极简的 Javascript 库
查看>>
高考将至,听听那些关于高考的经典段子吧
查看>>
如何在树莓派上使用图片特效
查看>>
《PHP和MySQL Web开发从新手到高手(第5版)》一一2.7 查看存储的数据
查看>>
在 Linux 下使用 RAID(六):设置 RAID 10 或 1 + 0(嵌套)
查看>>
《Adobe Fireworks CS5中文版经典教程》——1.6 撤销操作
查看>>
《Cucumber:行为驱动开发指南》——2.2 创建一个特性
查看>>
企业IT架构转型之道:阿里巴巴中台战略思想与架构实战. 1.2 企业信息中心发展的症结...
查看>>