1.Define package
CREATE1 OR REPLACE1 PACKAGE "TYPES"
AS
TYPE cursor_type IS REF CURSOR;
END;
2.Define Procedure
CREATE1 OR REPLACE1 PROCEDURE 1 P_USR_S
(
ID_IN IN TBL_USR.ID%TYPE,
CD_IN IN TBL_USR.CD%TYPE,
REF_CURSOR OUT TYPES.CURSOR_TYPE,
PAGE_NUMBER_IN IN NUMBER,
TOTAL_RECORD_IN IN NUMBER
)
AS
V_ROWSTART NUMBER;
V_ROWEND NUMBER;
BEGIN1
V_ROWSTART := USF_CALC_ROW_START(PAGE_NUMBER_IN, TOTAL_RECORD_IN);
V_ROWEND := USF_CALC_ROW_END(PAGE_NUMBER_IN, TOTAL_RECORD_IN);
OPEN1 REF_CURSOR FOR
SELECT1 ID,
CD,
NM,
EMAIL,
VERSION,
TOTAL_PAGE
FROM1
(
SELECT1 ROWNUM ROWNUMBER, VW.*
FROM1
(
SELECT1
COUNT(*) OVER () TOTAL_PAGE ,
U.id,
U.cd,
U.nm,
U.VERSION
FROM1 TBL_USR U
WHERE1 U.CD like CD_IN
ORDER1 BY CD
)VW
WHERE1 ROWNUM < V_ROWEND
)
WHERE1 ROWNUMBER >= V_ROWSTART;
END;