在线工具 在线编程 在线白板 在线工具 在线编程 在线白板

Oracle中的package 怎么用

我请讲解下,Oracle中的package 怎么用
最新回答
瞇烒+ωǒ

2024-11-08 13:11:22

先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;
你是我所有的梦

2024-11-08 12:04:00

如果用于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 参数来返回值的。
神啊,赐个妞吧

2024-11-08 06:35:38

在调用时应该这么写,包名.方法名(入参,出参)
薄凉的只是时光

2024-11-08 13:38:33

我刚学完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;
薄荷糖味的吻

2024-11-08 08:10:06

在sql中调用:包名.方法名 or 包名.过程名