PLSQL обнаружил символ «конец-офф-лайн» ... PLS-00103 - PullRequest
0 голосов
/ 16 февраля 2012

Я довольно новичок в 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 ]

9 голосов
/ 16 февраля 2012

Так же как отсутствует ;, отсутствует и 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;
1 голос
/ 03 июня 2016

Вам не хватает ключевого слова 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;

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

...