CREATE OR REPLACE PACKAGE pkg_aa
AS
TYPE myrctype IS REF CURSOR;
PROCEDURE get(p_id NUMBER, p_rc OUT myrctype);
END pkg_dept;
我怎么样在sql*plus中调用这个存储过程呢?主要是不知道写那个定义Ref Cursor。能否写个调用的例子。
另外在pl/sql块中如何调用它?
AS
TYPE myrctype IS REF CURSOR;
PROCEDURE get(p_id NUMBER, p_rc OUT myrctype);
END pkg_dept;
我怎么样在sql*plus中调用这个存储过程呢?主要是不知道写那个定义Ref Cursor。能否写个调用的例子。
另外在pl/sql块中如何调用它?
Connected as kdcerp20
SQL>
SQL> CREATE OR REPLACE PACKAGE pkg_aa
2 AS
3 TYPE myrctype IS REF CURSOR;
4 PROCEDURE get(p_id NUMBER, p_rc OUT myrctype);
5
6 END pkg_aa;
7 /Package createdSQL>
SQL> CREATE OR REPLACE PACKAGE BODY "PKG_AA" AS
2
3 PROCEDURE get(p_id NUMBER, p_rc OUT myrctype)
4 IS
5 v_num NUMBER;
6 BEGIN
7
8 SELECT p_id INTO v_num FROM dual;
9
10 OPEN p_rc FOR SELECT * FROM basiccode;
11
12 END get;
13
14
15
16 END pkg_aa;
17 /Package body createdSQL>
SQL> declare
2 TYPE myrctype IS REF CURSOR;
3 mycur myrctype;
4 v_num NUMBER;
5 begin
6 pkg_aa.get(v_num,mycur);
7 end;
8 /PL/SQL procedure successfully completed
var c refcursor
exec pkg_aa.get(1,:c)
print c