SqlPlus, не завершающийся sql сценарий

У меня есть файл со следующим сценарием:

BEGIN
    ...
    a bunch of inserts
    ...
    COMMIT;

EXCEPTION
    WHEN OTHERS THEN ROLLBACK;
END;

Когда я выполняю это в sqlplus, я получаю следующее:

SQL> @file.sql
382

Это - как будто он не заканчивает блок. Я плохо знаком с использованием pl/sql и sqlplus, таким образом, я не знаю, делаю ли я что-то не так.

Какие-либо идеи?

6
задан Megacan 17 February 2010 в 14:54
поделиться

2 ответа

Вам нужно добавить еще одну строку после последнего END; вот так:

/

Просто косая черта в качестве первого символа в строке, а затем новая строка.

9
ответ дан 10 December 2019 в 02:46
поделиться

Хорошо, я разобрался. Я должен был лучше поискать в документации, прежде чем размещать вопрос здесь.

В любом случае, согласно этой ссылке: http://download.oracle.com/docs/cd/B19306_01/server.102/b14357/ch4.htm#sthref840

SQL*Plus рассматривает подпрограммы PL/SQL так же, как и команды SQL, за исключением того, что точка с запятой (;) или пустая строка не завершают и не выполняют блок. Завершайте подпрограммы PL/SQL, вводя точку (.) с новой строки. Вы также можете завершить и выполнить подпрограмму PL/SQL, введя косую черту (/) с новой строки.

Вместо END вы должны завершить подпрограмму символом /.

0
ответ дан 10 December 2019 в 02:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: