Oracle中的package 怎么用 15

 我来答
pjaxo54
2010-12-16 · TA获得超过3035个赞
知道小有建树答主
回答量:1478
采纳率:0%
帮助的人:876万
展开全部
先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;
yitingxyt
2010-12-21
知道答主
回答量:24
采纳率:0%
帮助的人:12万
展开全部
如果用于Oracle存储过程,由于Oracle存储过程没有返回值,它的所有返回值都是通过out参数来替代的,列表同样也不例外,但由于是集合,所以不能用一般的参数,必须要用pagkage了.所以要分两部分。
1. 建一个程序包。如下:
CREATE OR REPLACE PACKAGE TESTPACKAGE AS
TYPE TEST_CURSOR IS REF CURSOR;
end TESTPACKAGE;
2. 建立存储过程,存储过程为:
CREATE OR REPLACE PROCEDURE TESTC(P_CURSOR out TESTPACKAGE.TEST_CURSOR) IS
BEGIN
OPEN P_CURSOR FOR
SELECT * FROM BOM.TESTTB;
END TESTC;
可以看到,它是把游标(可以理解为一个指针),作为一个out 参数来返回值的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zaq1112233
2010-12-16
知道答主
回答量:1
采纳率:0%
帮助的人:0
展开全部
在调用时应该这么写,包名.方法名(入参,出参)
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wang629613
2010-12-16
知道答主
回答量:44
采纳率:0%
帮助的人:10.5万
展开全部
我刚学完Package:
仔细看
程序包规范

CREATE [OR REPLACE]
PACKAGE
package_name IS|AS
[Public item declarations]
[Subprogram specification]
END [package_name];

CREATE OR REPLACE PACKAGE BODY pack_me AS
PROCEDURE order_proc (orno VARCHAR2) IS
stat CHAR(1);
BEGIN
SELECT ostatus INTO stat FROM order_master
WHERE orderno = orno;
……
END order_proc;
FUNCTION order_fun(ornos VARCHAR2)
RETURN VARCHAR2
IS
icode VARCHAR2(5);
ocode VARCHAR2(5);
BEGIN
……
END order_fun;
END pack_me;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
goldjincheng
2010-12-16 · TA获得超过379个赞
知道答主
回答量:91
采纳率:0%
帮助的人:67.9万
展开全部
在sql中调用:包名.方法名 or 包名.过程名
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式