Сторінка 18 з 29
Взаємодія SQL * Plus з користувачем
Стандартний механізм запиту значень користувальницьких змінних дає обмежені засоби взаємодії з користувачем - введення значень у відповідь на стандартні запрошення. Утиліта SQL * Plus дозволяє управляти видачею повідомлень і запитом значень змінних.
команда PROMPT
Для видачі на екран довільного тексту використовується команда PROMPT з наступним синтаксисом:
Вона видає вказаний текст або порожній рядок (при виклику без параметрів). Якщо необхідно видати кілька рядків, для кожного рядка виконується окрема команда PROMPT.
команда ACCEPT
Вважати рядок і запам'ятати її в зазначеній користувальницької змінної певного типу (видаючи, при необхідності, запрошення) дозволяє команда ACCEPT з наступним синтаксисом:
Якщо зазначена в команді ACCEPT для користувача змінна не існує, SQL * Plus створює її. Опції команди ACCEPT описані в табл. 14.
Таблиця 14. Опції команди ACCEPT.
Розглянемо простий приклад спільного використання команд PROMPT і ACCEPT. Нехай є командний файл splus1.sql наступного змісту:
Ось що відбувається при його виконанні:
команда PAUSE
Команда PAUSE дозволяє дочекатися підтвердження того, що користувач прочитав повідомлення на екрані, видане командою PROMPT. Для підтвердження необхідно натиснути клавішу Enter, після чого виконання сценарію або сеансу SQL * Plus продовжиться.
Команда PAUSE має наступний синтаксис:
Ця команда видає порожню рядок, потім рядок тексту, якщо він зазначений, або ще один порожній рядок, і чекає підтвердження від користувача. Введення ця команда очікує з терміналу (при інтерактивному запуску), навіть якщо вхідний і вихідний потоки перенаправлені. При роботі в пакетному режимі для продовження необхідна наявність нового рядка у файлі, звідки береться вхідний потік.
Розглянемо простий приклад. Змінимо файл splus1.sql наступним чином:
Ось що буде видано при його виконанні:
Для отримання результатів довелося натиснути клавішу Enter після виведення відповідного запрошення.
Слід розуміти, що фрагментація таблиць відмінна від файлової фрагментації. Коли виконується серія операцій DML над таблицею, таблиця фрагментируется, тому що DML не звільняє вільний простір до HWM.HWM - це індикатор використання блоків (USED BLOCKS) в базі даних. Блоки йдуть до чи.
Default Permanent Tablespace Перейменування табличного пространстваТаблічное простір SYSAUX Складений табличний простір TempDefault Permanent TablespaceOracle 9i ввів поняття тимчасового табличного простору за замовчуванням (default temporary tablespace), що дозволило запобігти випадковим.
ALTER TABLE table_name READ ONLY; ALTER TABLE table_name READ WRITE; Наступний скрипт створює таблицю, додає в неї кілька рядків, потім переключається у режим регулювання таблицю в режим "тільки для читання" .CREATE TABLE ro_tab (id NUMBER); INSERT INTO ro_tab VALUES (1); INSERT INTO ro_tab VALUES (2).
Процедура створення практично не відрізняється від попередніх версій - 9i і 10g. У створюваній базі даних будемо використовувати такі опції: OMF (Oracle Managed File) для файлів даних, файлів журналів повторного виконання і керуючих файлів. FRA (Flash Recovery Area) для архівних журналів або резе.
Неможливість гарантувати, що всі зміни плану завжди будуть в кращу сторону, привела деяких замовників до того, щоб закріпити свої плани виконання (збережені плани) або блокувати статистику оптимізатора. Однак, якщо діяти таким чином, ми позбавляємо себе можливості коли-небудь вико.