Академия Специальных Курсов по Компьютерным Технологиям
    Главная страница Послать письмо
 
AskIt.ru  
   
   
   
   
   
   
 
 
  Главная / Заказные курсы / SQL и PL/SQL в Oracle10g
 
 

Получить учебные материалы по этому курсу


<-- Назад Читать дальше -->

1.2.6 Работа с внешними файлами скриптов в SQL*Plus

Работа с внешними файлами из Oracle SQL*Plus, команды GET, START, символы @ и @@, команды SAVE и SPOOL

В принципе, можно и не вызывать текстовый редактор операционной системы из SQL*Plus, а заранее написать код во внешнем редакторе и сохранить его в файле операционной системы. SQL*Plus позволяет работать с такими файлами: считывать их в буфер, запускать на выполнение, сохранять набранные в SQL*Plus команды в файле, а также записывать в файл результаты выполнения запросов.

Отметим, что во всех случаях SQL*Plus подразумевает, что для скрипта используется расширение sql. Если используется именно это расширение, его можно опускать. Если же расширение другое, потребуется указать имя файла вместе с расширением.

Для того, чтобы просмотреть из SQL*Plus код, который находится в файле на диске, можно использовать команду GET, например:

GET C:\OracleScript.sql

Информация из файла C:\OracleScript.sql будет загружена в буфер SQL*Plus (и выведена на экран).

Запустить на выполнение код из внешнего файла можно при помощи команды START. Можно также просто дописать символ @ к имени файла:

START C:\OracleScript.sql

или

@C:\OracleScript.sql

Для запуска внешнего файла можно также использовать формат @@имя_файла. Отличие между применением одного символа At (@) и двумя символами At (@@) — в их поведении, когда полный путь к файлу скрипта не указан. Обычно при использовании двух символов @@ в ситуации, когда этой командой запускается один скрипт из другого скрипта, поиск второго скрипта будет производиться SQL*Plus в том же каталоге, в котором находится первый скрипт. Если же использовать один символ @, то поиск будет производиться в каталоге скриптов по умолчанию (зависит от операционной системы и установленных экземпляров Oracle).

Сохранить содержимое буфера SQL*Plus в файле можно при помощи команды SAVE:

SAVE c:\MyScript.sql

Для команды SAVE можно указать дополнительные параметры:

  • CREATE (по умолчанию) — создать новый файл;
  • REP (REPLACE) — заменить имеющийся на диске файл новым (если такого файла еще нет, он будет просто создан);
  • APP (APPEND) — дописать содержимое буфера SQL*Plus к файлу на диске, например:

SAVE c:\MyScript.sql APP

Часто возникает необходимость записать результаты выполнения запросов SQL*Plus в файл. Для этой цели используется команда SPOOL:

SPOOL C:\ScriptResults.rpt

select * from emp

Для отключения вывода информации в файл используется команда SPOOL OFF.

Отметим некоторые моменты, связанные с перенаправлением вывода SPLPlus в файл:

·        если расширение для файла не указано, по умолчанию SQL*Plus добавит расширение lst;

·        перенаправлять вывод можно не только в файл, но и на служебные устройства операционной системы (принтер, NULL) и т.п.;

·        при выводе информации в файл производится буферизация вывода. Поэтому не удивляйтесь, если непосредственно после выполнения запроса обнаружится, что его результаты в файл не добавились. Они будут добавлены полностью только после выполнения команды SPOOL OFF, закрытия SQL*Plus или других действий по очистке кэша результатов;

·        для SPOOL можно указывать дополнительные параметры — CREATE, REPLACE, APPEND и OUT (эта команда дает указание прекратить спулинг и отправить накопленное содержимое файла на принтер; работать она будет не на всех операционных системах);

·        команду SPOOL можно использовать для формирования результатов выполнения запросов в формате HTML;

·        отключить/включить вывод результатов на экран SQL*Plus можно при помощи команд SET TERMOUT ON/SET TERMOUT OFF.

Отметим, что запуск внешнего скрипта на выполнение и запись результатов во внешний файл можно осуществить и при помощи параметров командной строки SQL*Plus (см. раздел 1.2.2).

 

   
   
   
   
   
   
   
   
   
   
 
<-- Назад Читать дальше -->

Получить учебные материалы по этому курсу


 
© 2004-2016, Академия Специальных Курсов
по Информационным Технологиям
.
Все права защищены.

Разработка NevaStudio
г. Санкт-Петербург, Васильевский остров,
20-я линия, д. 7
Офис 101, 2-й этаж
Телефон: 8(812)922-47-60
E-mail: info@askit.ru