कुछ गलतियाँ, मेरे कामकाजी उदाहरण को देखें, बस स्रोत तालिका बदल दी है:
CREATE OR REPLACE FUNCTION TEST_CUR RETURN SYS_REFCURSOR
AS
VAR_REF SYS_REFCURSOR;
BEGIN
OPEN VAR_REF FOR
SELECT *
FROM DUAL;
RETURN VAR_REF;
END;
यहां आपको कर्सर खोलने की जरूरत नहीं है, यह पहले से ही खुला है।
DECLARE
L_VAR SYS_REFCURSOR;
L_STATUS VARCHAR2(10);
BEGIN
L_VAR:=TEST_CUR;
LOOP
FETCH L_VAR INTO L_STATUS;
EXIT WHEN L_VAR%NOTFOUND;
DBMS_OUTPUT.PUT_LINE( L_STATUS );
END LOOP;
CLOSE L_VAR;
END;
ऑरैकल कर्सर का परीक्षण करने का तरीका दिखाने वाली एक बहुत ही रोचक पोस्ट:
5 अलग-अलग तरीके Oracle Ref Cursor परिणामों का परीक्षण करें