Робота із зовнішніми файлами з Oracle SQLPlus
Робота із зовнішніми файлами з Oracle SQL*Plus, команди GET, START, символи @ та @@, команди SAVE та SPOOL
Зазначимо, що у всіх випадках SQL*Plus передбачає, що для скрипту використовується розширення SQL. Якщо використовується саме це розширення, то його можна опускати. Якщо розширення інше, потрібно вказати ім'я файлу разом з розширенням.
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 можна вказати додаткові параметри:
- 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).