oracle如何声明包体,oracle的包调用包体中的函数

请问如何在oracle 的package 包里面声明和使用带游标记录类型的函数?

你的这个想法(在包体的函数/过程里面使用包体定义的游标记录类型作为参数)是不能实现的.

创新互联公司主要从事网站制作、做网站、网页设计、企业做网站、公司建网站等业务。立足成都服务潼关,十多年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:13518219792

可以把函数F_do_sth_with_C中需要的参数在包头进行定义. 如果这个参数的类型是由包体的函数/过程动态决定的, 那么你要另想一些变通的办法.

求看看这个ORACLE包体编译的时候提示必须声明标识符emp,我该怎么声明它呀

emp表是oracle安装包里的example,它属于scott,确认一下这个表是否存在:

select owner,object_type from dba_objects where object_name='EMP';

如果这个表存在,出现这个错误,有以下几个原因:

1.这个包的所有者没有对emp表的select权限

2.虽然有权限,但在引用它的时候必需明确这个表的schema,也就是上面那个查询的owner,你应该用scott.emp

如何建立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);


分享名称:oracle如何声明包体,oracle的包调用包体中的函数
本文链接:http://bzwzjz.com/article/phgodj.html

其他资讯

Copyright © 2007-2020 广东宝晨空调科技有限公司 All Rights Reserved 粤ICP备2022107769号
友情链接: 定制网站建设 app网站建设 企业网站建设 成都网站建设公司 成都网站建设 成都网站建设推广 成都网站制作 网站制作 自适应网站设计 网站建设费用 定制网站设计 定制网站制作 古蔺网站建设 手机网站制作 重庆网站建设 成都网站设计公司 营销网站建设 成都企业网站建设 响应式网站建设 重庆手机网站建设 成都响应式网站建设 营销型网站建设