网站建设资讯

NEWS

网站建设资讯

oracle如何声明包体 oracle删除包和包体

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

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

成都创新互联自2013年起,先为宝兴等服务建站,宝兴等地企业,进行企业商务咨询服务。为宝兴企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。

可以把函数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中如何在通过创建一个package,然后在package中创建procedure的语法是怎么样的啊

先create package,在里面声明procedure

然后再create package body,在package body里面编写procedure的代码即可(相当于create procedure)。

包里没有create procedure

示例如下:

CREATE OR REPLACE PACKAGE pkg_test IS

PROCEDURE pro_test(V_OLD IN VARCHAR2,V_NEW IN VARCHAR2);

...

END test;

/

CREATE OR REPLACE PACKAGE BODY pkg_test IS

...

PROCEDURE pro_test(V_OLD IN VARCHAR2,V_NEW IN VARCHAR2) IS

BEGIN

...

END;

...

END pkg_test;

oracle 如何在包和包体中添加新的存储过程?如何查看包的sql内容?

先修改包头,加入存储过程声明,然后再在包体中增加即可!

select text from dba_source where owner='xxx' and name='包名' and type='PACKAGE BODY'

order by line asc

如何建立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删除包和包体
当前URL:http://cdweb.net/article/hjgscs.html