Oracle-Cursor
I am studying PL / SQL and testing the use of CURSOR, but I am not able to test an example:
SET SERVEROUTPUT ON
DECLARE
V_NAME VARCHAR2(50);
CURSOR CUR_CURSOR IS
SELECT FIRST_NAME FROM EMPLOYEES;
TEMP CUR_CURSOR%ROWTYPE;
BEGIN
IF NOT CUR_CURSOR%ISOPEN THEN
OPEN CUR_CURSOR;
LOOP
FETCH CUR_CURSOR INTO TEMP;
EXIT
WHEN CUR_CURSOR%NOTFOUND;
DBMS_OUTPUT.PUT_LINE(V_NAME);
END LOOP;
CLOSE CUR_CURSOR;
END;
Error:
Error Reporting - Ora-06550: row 17, column 1: PLS-00103: Encountered the symbol "END" when expecting one of the following:
if 06550. 00000 - "line %s, column %s:\n%s" *Cause: Usually a PL/SQL compilation error. *Action:
0
Author: Victor Stafusa, 2018-03-29
1 answers
SET SERVEROUTPUT ON
DECLARE
V_NAME VARCHAR2(50);
CURSOR CUR_CURSOR IS
SELECT FIRST_NAME FROM EMPLOYEES;
TEMP CUR_CURSOR%ROWTYPE;
BEGIN
IF NOT CUR_CURSOR%ISOPEN THEN
OPEN CUR_CURSOR;
LOOP
FETCH CUR_CURSOR INTO TEMP;
EXIT
WHEN CUR_CURSOR%NOTFOUND;
DBMS_OUTPUT.PUT_LINE(V_NAME);
END LOOP;
CLOSE CUR_CURSOR;
END IF;
END;
Another (simpler) way
SET SERVEROUTPUT ON
BEGIN
FOR REMP IN (SELECT FIRST_NAME FROM EMPLOYEES)
LOOP
DBMS_OUTPUT.PUT_LINE(REMP.FIRST_NAME);
END LOOP;
END;
1
Author: Motta, 2018-03-29 18:05:44