В SQL*Plus самые последние выполнявшиеся операторы SQL сохраняются в области памяти, называемой буфером SQL. К сожалению, SQL*Plus позволяет сохранять в этом буфере только последнюю выполнявшуюся команду. Каждый новый вводимый оператор заменяет собой тот, что находился в буфере ранее. Если нужно увидеть предыдущую выполнявшуюся команду, достаточно ввести команду LIST или просто l:
SQL> l 1 SELECT username, status, process, sid, serial# 2 FROM v$session 3* WHERE status = 'ACTIVE' SQL>
Для просмотра содержимого сценария SQL перед его выполнением его следует загрузить из операционной системы в буфер SQL с помощью команды GET:
SQL> GET status.sql 1 SELECT username,status,process,sid,serial# 2 FROM v$session 3* WHERE status = 'ACTIVE' SQL>
Внимание! В случае ввода в сеансе SQL*Plus лишь команды / будет сразу же начинаться выполнение последней вводившейся команды, которая всегда хранится в буфере SQL. Поэтому лучше с помощью команды LIST предварительно выяснить, какая именно команда будет выполняться.
Иногда может возникать необходимость выполнения подряд сразу нескольких сценариев с командами SQL. В таком случае можно указать все подлежащие выполнению сценарии в одном главном сценарии и затем просто запустить этот главный сценарий - в результате все включенные в него сценарии будут выполняться друг за другом автоматически. Ниже показано, как включить несколько сценариев SQL в один главный файл:
SQL> GET one_script.sql 1 @check.sql 2 @create_table.sql 3 @insert_table.sql 4* @create_constraint.sql SQL>
В этом примере запуск сценария one_script.sql будет, соответственно, приводить к поочередному выполнению четырех входящих в его состав сценариев. Такой подход является очень эффективным способом выполнения сценариев, особенно по ходу создания и заполнения новой базы данных, при условии, что необходимые для этого отдельные сценарии уже созданы и протестированы.
На заметку! Для запуска командных файлов, состоящих из нескольких других командных файлов, можно пользоваться обозначением @@имя_командного_файла, например: @@one_script.sql. Применение @@ гарантирует, что Oracle будет искать отдельные файлы по тому же пути, что и основной командный файл.