--包头
create or replace
package ColumnPowerSelectAllPACKAGE is
type MyCursor is ref cursor;
procedure P_GetTableScript(p1 in INTEGER);
end;--包体
create or replace
PACKAGE BODY COLUMNPOWERSELECTALLPACKAGE AS
procedure P_GetTableScript(p1 in INTEGER) as
returnvalue MyCursor;
begin
open returnvalue for select * from ut_users where pkid = p1;
end P_GetTableScript;
END COLUMNPOWERSELECTALLPACKAGE;为何调用call columnpowerselectallpackage.P_GetTableScript(7);
只显示call columnpowerselectallpackage.P_GetTableScript(7) succeeded.
而不返回结果集呢?还是procedure根本就不能返回结果集???
CREATE OR REPLACE FUNCTION gg(s INT,e INT) RETURN SYS_REFCURSOR AS
r_c SYS_REFCURSOR;
BEGIN
OPEN r_c FOR
SELECT ename,empno
FROM (SELECT ename,empno, ROW_NUMBER() OVER(ORDER BY ENAME) RN FROM SCOTT.EMP T)
WHERE RN >= S
AND RN <= E;
RETURN r_c;
END;
/DECLARE
r_c SYS_REFCURSOR;
v_c1 VARCHAR2(10);
v_c2 VARCHAR2(10);
BEGIN
r_c:=gg(2,6);
LOOP
FETCH r_c INTO v_c1,v_c2;
EXIT WHEN r_c%NOTFOUND;
dbms_output.put_Line(v_c1||'-'||v_c2);
END LOOP;
CLOSE r_c;
END;
/