DECLARE
CURSOR EMPCUR
SELECT EMPNO,ENAME,SAL,ROWNUM
FROM (SELECT *
FROM EMP
ORDER BY SAL DESC)
WHERE ROWNUM<=3
ORDER BY ROWNUM;
BEGIN
FOR EMPREC IN EMPCUR
LOOP
DBMS_OUTPUT.PUT_LINE('RANK '||EMPREC.ROWNUM);
DBMS_OUTPUT.PUT_LINE(EMPREC.EMONO||' - '||EMPREC.ENAME||' - '||EMPREC.SAL);
END LOOP;
END;
/
Этот код не работает:
ОШИБКА в строке 2: ORA-06550: строка 2, столбец 17: PLS-00103: Обнаружен символ "ВЫБОР" при ожидании одного из следующих: ( ; возвращается Символ "есть" был заменен на "ВЫБРАТЬ", чтобы продолжить.
EMPCUR
пропущено ключевое словоIS
. Более того, в этой конкретной ситуации нет необходимости использоватьORDER BY ROWNUM
. - person Nick Krasnov   schedule 27.11.2013