|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
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 можно указать дополнительные параметры:
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).
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
Получить учебные материалы по этому курсу |
||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||