Что не так с этим простым блоком? PL SQL - PullRequest
0 голосов
/ 09 января 2020

Я пытаюсь запустить этот простой анонимный блок в TOAD, но я получаю следующую ошибку. Кто-нибудь может мне помочь?

Это код:

BEGIN
FOR REC_CONF IN
(       
    SELECT DISTINCT CONF.SCHEMA, CONF.TABELLA, CONF.CAMPO, CONF.TIPO_CAMPO, CONF.LUNG_CAMPO, 
CONF.CAMPO_ACCESSO
    FROM EDWH.EDWH_GDPR_CONFIG CONF
    WHERE UPPER(FLAG_CANC) = 'Y'
    AND UPPER(SCHEMA) = UPPER('EDWH')
    ORDER BY CONF.TABELLA, CONF.CAMPO ASC
)
LOOP

    DBMS_OUTPUT.PUT_LINE (REC_CONF.TABELLA);
END LOOP;
END;

Это должно l oop в EDWH.EDWH_GDPR_CONFIG и распечатать атрибут в dbms_output.put_line.

Это ошибка, которую я получаю:

[Error] Execution (10: 8): ORA-06550: row 10, column 8:
PLS-00103: Encountered the symbol "end-of-file" when expecting one of the following:

   ( begin case declare exit for goto if loop mod null pragma
   raise return select update while with <an identifier>
   <identifier between quotes>
   <a bind variable> << continue close current delete fetch
   lock insert open rollback savepoint set sql execute commit
   forall merge pipe purge)

Ответы [ 2 ]

1 голос
/ 09 января 2020

Я считаю, что вы запустили скрипт неправильно. Это скрипт PL / SQL, поэтому запустите его, нажав клавишу F9 или кнопку " Выполнить как скрипт " на панели инструментов TOAD.

Если курсор был помещен где-то в этом коде (например, на BEGIN) и вы нажали <Ctrl + Enter>, то вы получите

ORA-06550: строка 12, столбец 4: PLS- 00103: Обнаружен символ «конец файла» при ожидании одного из следующих действий: (начинайте регистр, объявляйте выход для goto, если l oop mod null pragma поднимите return select update, в то время как с << продолжить закрыть текущий удалить выборку заблокировать вставить вставить открыть точка сохранения отката установлена ​​sql выполнить коммит для очистки канала слияния </p>

Итак - запустите его как script .

0 голосов
/ 09 января 2020

Попробуйте добавить '/' после последнего "END;"

END LOOP;
END;
/

и выполнить снова

...