包用于在逻辑上组合过程和函数,它由包规范和包体两部分组成
网站建设公司,为您提供网站建设,网站制作,网页设计及定制网站建设服务,专注于企业网站设计,高端网页制作,对格栅板等多个行业拥有丰富的网站建设经验的网站建设公司。专业网站设计,网站优化推广哪家好,专业成都网站营销优化,H5建站,响应式网站。
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);
在ORACLE中,函数的调用方式有位置表示法调用函数、命名表示法调用函数、混合使用位置表示法和命名表示法调用函数、排除表示法、ql调用表示法 --混合表示法。
甲骨文股份有限公司(Oracle)是全球大型数据库软件公司,总部位于美国加州红木城的红木岸。在2008年,甲骨文股份有限公司是继Microsoft及IBM后,全球收入第三多的软件公司。Oracle数据库产品为财富排行榜上的前1000家公司所采用,许多大型网站也选用了Oracle系统。甲骨文股份有限公司于1989年正式进入中国,在北京、上海、广州和成都均设立了分支机构。
1、在查询语句中调用自定义函数 F_GETXM(FID),该函数通过编号获取人员姓名,FID 为编号
SELECT F_GETXM(fID) FROM T_COURSE;
2、在存储过程中调用:其中uID为学号,uName保存获得的姓名
uName := F_GETXM(uID);
3、在 INSERT 语句中调用
INSERT INTO T_CLASSMATE (FID,FNAME,...) VALUES (uID,F_GETXM(uID),...);
4、在 UPDATE 语句中调用
UPDATE T_CLASSMATE SET FNAME = F_GETXM('1700511') WHERE FID = '1700511';
5、在 WHERE 语句中调用
SELECT * FROM T_CLASSMATE WHERE FNAME = F_GETXM('1700511');
注:T_CLASSMATE 学生表;T_COURSE 课程表。
方式一:
CALL PAMF05_FUN(你需要传入的参数');
方式二:
begin
PAMF05_FUN(你需要传入的参数');
end;