第7章Oreacle开发PL/SQL子程序和包

开发PL/SQL子程序和包

总结

子程序是已命名的PL/SQL块,可带参数并可在需要时随时调用.
子程序可以具有声明部分 可执行部分和异常处理部分.
PL/SQL支持两种类型的子程序 即过程和函数。
过程用于执行特定任务,而函数用于执行任务并返回值。
要将值传递给子程序,有3种参数(in int 传入 out int输出 in out 传入值输出返回更新的值 )
包是一种数据库对象,他是对相关PL/SQL类型。子程序。游标。异常。变量和常量的封装。
包由两部分组成:即包规范和包体。
在包体声明的项可视为“私有”,因为他们只限于包内使用。
在包规范中声明的项也可以在包之外使用。这样的项称为:“公用对象”。
包规范包含公用对象及其类型
PL/SQL允许两个或多个打包的子程序具有同一名称。在需要子程序接受属于不同数据类型的参数是,可以使用此选项此概念称为重载。
使用包的优点是:模块化 、更轻松的应用程序设计、信息的隐藏、新增功能以及性能更佳、

/包规范的创建关键字(package )/
create or replace package 包名 is
包接口定义、让包体去实现
procedure pro_test_pack(v_id in int);
end 包名;
/包体实现包规范中定义的接口使用关键字(package body)/
create or replace package body 包名 is
实现包规范中定义的接口
end;
end 包名;

完整代码

/包规范/
create or replace packagepack_name is
v_var varchar2(100);
procedure pro_test_pack(v_id in int);
end pack_name;
/创建包体/
create or replace package bodypack_name is
procedure pro_test_pack(v_id in int) is
begin
v_var :=’adasf’;
dbms_output.put_line(v_var);
end;
end pack_name;
call pack_name.pro_test_pack(123);