包用于在逻辑上组合过程和函数,它由包规范和包体两部分组成
①创建包
--创建一个包sp_package
create?package?sp_package?is
--声明该包有一个过程和函数,(没有实现)
end;
--创建包体(用于实现已经声明的函数和过程)
create?package?body?sp_package?is
is
BEGIN
UPDATE?emp
SET?sal?=?newsal
WHERE?ename?=?name;
END;
return?number?is
annual_salary?number;
INTO?annual_salary
FROM?emp
RETURN?annual_salary;
--调用包中的内容
exec?sp_package.update_sal('name',number);
包只是作为 程序的一个载体而已,你要运行,当然是去调用它!
包里面可以包含函数、过程等,你可以开发程序时候调用包里面的这些程序!没有听说过包怎么运行的道理!
就像电视机(包)可以用来看电视,但是你不去打开它(调用包),它就没有作用!
楼下的明显误导别人啊,包何来参数之说?只有包里面的程序才有参数,调用包里面过程的方法如下:
begin
exec 包名.过程名();
函数的调用就不用我写了吧!
pl/sql里,select
语句必须接into
,不接into那就得返回一个游标出去,比如
create
or
replace
package
test_package
procedure
query_test(num
number,po_cursor
out
sys_refcursor);
end
test_package;
body
sys_refcursor)
select
unitname,tradetype,workernumber
from
test
where
income=num;
query_test;
create package sp_package is
create package body sp_package is
UPDATE emp
SET sal = newsal
WHERE ename = name;
return number is
annual_salary number;
INTO annual_salary
FROM emp
RETURN annual_salary;
exec sp_package.update_sal('name',number);
以上就是土嘎嘎小编为大家整理的oracle包体如何调用相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!