重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
代码如下:
成都创新互联公司专注于砚山企业网站建设,成都响应式网站建设公司,商城系统网站开发。砚山网站建设公司,为砚山等地区提供建站服务。全流程按需求定制制作,专业设计,全程项目跟踪,成都创新互联公司专业和态度为您提供的服务
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 ;
oracle数据库中:用的最多的是表(table),表里面用于存储数据。起到数据库的作用。
包和包体一般是不可分的,包中定义变量;包体中书写操作程序。(备注:在数据库端得包体中编写数据库操作代码,简单,快捷,方便)。
前台只需要调用oracle的包体函数就可以实现该包体中的数据库操作语言,完成数据存储,修改,删除,等等功能。
除上述以外还有:视图,触发器,队列,数据库连接等等。
总之,oracle非常好用!!!!
------包体类似于C语言的公共类函数。
包头
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;
包只是作为 程序的一个载体而已,你要运行,当然是去调用它!
包里面可以包含函数、过程等,你可以开发程序时候调用包里面的这些程序!没有听说过包怎么运行的道理!
就像电视机(包)可以用来看电视,但是你不去打开它(调用包),它就没有作用!
楼下的明显误导别人啊,包何来参数之说?只有包里面的程序才有参数,调用包里面过程的方法如下:
begin
exec 包名.过程名();
end;
函数的调用就不用我写了吧!
exec package.function(xx,xx...);
如果想执行整个,在包中编写一个调研所有函数或存储的主存储,然后你调研主存储就可以了。
oracle提供包功能本身不具备调研所有函数或存储的功能,只是将函数、存储、变量以包的形式管理。
包用于在逻辑上组合过程和函数,它由包规范和包体两部分组成
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);