重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
包只是作为 程序的一个载体而已,你要运行,当然是去调用它!
我们一直强调做网站、成都做网站对于企业的重要性,如果您也觉得重要,那么就需要我们慎重对待,选择一个安全靠谱的网站建设公司,企业网站我们建议是要么不做,要么就做好,让网站能真正成为企业发展过程中的有力推手。专业的建站公司不一定是大公司,创新互联建站作为专业的网络公司选择我们就是放心。
包里面可以包含函数、过程等,你可以开发程序时候调用包里面的这些程序!没有听说过包怎么运行的道理!
就像电视机(包)可以用来看电视,但是你不去打开它(调用包),它就没有作用!
楼下的明显误导别人啊,包何来参数之说?只有包里面的程序才有参数,调用包里面过程的方法如下:
begin
exec 包名.过程名();
end;
函数的调用就不用我写了吧!
包用于在逻辑上组合过程和函数,它由包规范和包体两部分组成
1.创建包
--创建一个包sp_package
create package sp_package is
--声明该包有一个过程和函数,(没有实现)
procedure update_sal(name varchar2,newsal number);
function annual_nicome(name varchar2) return number;
end;
--创建包体(用于实现已经声明的函数和过程)
create package body sp_package is
procedure update_sal(name varchar2,newsal number)
is
BEGIN
UPDATE emp
SET sal = newsal
WHERE ename = name;
END;
function annual_income(name varchar2)
return number is
annual_salary number;
BEGIN
SELECT sal * 12 + Nvl(comm,0)
INTO annual_salary
FROM emp
WHERE ename = name;
RETURN annual_salary;
END;
end;
--调用包中的内容
exec sp_package.update_sal('name',number);
exec package.function(xx,xx...);
如果想执行整个,在包中编写一个调研所有函数或存储的主存储,然后你调研主存储就可以了。
oracle提供包功能本身不具备调研所有函数或存储的功能,只是将函数、存储、变量以包的形式管理。
包头
create or replace package package_name is
prcedure p1;
prcedure p2(v1 in char, v2 in date);
end package_name;
包体
create or replace package body package_name is
prcedure p1 is
begin
--代码省略
end p1;
prcedure p2(v1 in char, v2 in date) is
begin
--代码省略
end p2;
end package_name;
代码如下:
CREATE OR REPLACE PACKAGE BODY Interface_PKG AS
PROCEDURE GetTableData(IN_WorkDate IN Date, IO_CURSOR OUT T_CURSOR) IS
V_CURSOR T_CURSOR;
BEGIN
OPEN V_CURSOR FOR
select *
from 测试表
where workdate = IN_WorkDate;
IO_CURSOR := V_CURSOR;
End GetTableData;
END Interface_PKG;
扩展资料
PACKAGE分SPEC和body两部分:
1、SPEC是声明部分:
CREATE OR REPLACE PACKAGE FirstPage is
type outlist is ref cursor;
Procedure p_get( maxrow in number, minrow in number, return_list out outlist );
function f_get(str in varchar2)return varchar2;
END FirstPage;
2、BODY是功能实现部分:
CREATE OR REPLACE package body FirstPage is
Procedure p_get( maxrow in number, minrow in number, return_list out outlist )
is begin open return_list for
select * from (select a.*,rownum rnum from IPS_WL_INNOLUXPN a where rownum=maxrow) where rnum =minrow;
end ;