PLSQL столкнулся с символом "end-offile"... PLS-00103

Я совершенно новичок в PL SQL, когда я попытался написать что-то вроде следующего:

BEGIN FOR foo IN (SELECT A, B, C FROM foo_table WHERE some_conditions) LOOP
DBMS_OUTPUT.PUT_LINE('sth here')
END LOOP;

Я получил следующую ошибку при выполнении проверки в SQL Developer

Обнаружен символ "конец файла", когда ожидается следующее: начальный регистр, объявить конечное исключение и многое другое...

Что не так с моим утверждением? Может ли кто-нибудь дать мне совет, как решить эту проблему? Я буду очень рад за все намеки.

2 ответа

А также пропустить ; end; тоже отсутствует Этот код должен работать:

BEGIN FOR foo IN (SELECT A, B, C FROM foo_table WHERE some_conditions) LOOP
DBMS_OUTPUT.PUT_LINE('sth here');
END LOOP;
END;

Вы скучаете по end Ключевое слово, чтобы закрыть begin,

Подобные вещи имеют тенденцию бросаться в глаза при форматировании кода.

begin
    for foo in (
        select a, b, c from foo_table where some_conditions
    )
    loop
        dbms_output.put_line('sth here');
    end loop;

(Редактировать: почему-то я пропустил правильный ответ Джона перед публикацией.)

Другие вопросы по тегам