从品牌网站建设到网络营销策划,从策略到执行的一站式服务
你的这个想法(在包体的函数/过程里面使用包体定义的游标记录类型作为参数)是不能实现的.
创新互联公司主要从事网站制作、做网站、网页设计、企业做网站、公司建网站等业务。立足成都服务潼关,十多年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:13518219792
可以把函数F_do_sth_with_C中需要的参数在包头进行定义. 如果这个参数的类型是由包体的函数/过程动态决定的, 那么你要另想一些变通的办法.
emp表是oracle安装包里的example,它属于scott,确认一下这个表是否存在:
select owner,object_type from dba_objects where object_name='EMP';
如果这个表存在,出现这个错误,有以下几个原因:
1.这个包的所有者没有对emp表的select权限
2.虽然有权限,但在引用它的时候必需明确这个表的schema,也就是上面那个查询的owner,你应该用scott.emp
包用于在逻辑上组合过程和函数,它由包规范和包体两部分组成
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);
成都网站建设公司地址:成都市青羊区太升南路288号锦天国际A座10层 建设咨询028-86922220
成都快上网科技有限公司-四川网站建设设计公司 | 蜀ICP备19037934号 Copyright 2020,ALL Rights Reserved cdkjz.cn | 成都网站建设 | © Copyright 2020版权所有.
专家团队为您提供成都网站建设,成都网站设计,成都品牌网站设计,成都营销型网站制作等服务,成都建网站就找快上网! | 成都网站建设哪家好? | 网站建设地图