SqlPlus не завершает сценарий SQL - PullRequest
6 голосов
/ 17 февраля 2010

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

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

EXCEPTION
    WHEN OTHERS THEN ROLLBACK;
END;

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

SQL> @file.sql
382

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

Есть идеи?

Ответы [ 2 ]

9 голосов
/ 17 февраля 2010

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

/

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

0 голосов
/ 17 февраля 2010

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

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

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

Вместо END вы должны закончить с /.

...