- •Приложение. Утилита sql*Plus. Создание и выполнение сценариев Назначение sql*Plus
- •Базовые понятия
- •Расширенные формулы Бэкуса-Наура
- •Запуск sql*Plus и выход из него
- •Опции командной строки
- •Регистрационная информация
- •Начальный сценарий
- •Использование профилей сайта и пользователя
- •Выход из sql*Plus
- •Подключение к стандартной и удаленной базе данных
- •Использование команды connect
- •Формат строки связи для удаленной базы данных
- •Основные команды
- •Выполнение команд Буфер sql
- •Выполнение операторов sql
- •Выполнение блоков pl/sql
- •Выполнение команд sql*Plus
- •Прекращение команды по ходу работы
- •Получение информации о времени выполнения команды
- •Выполнение команд базовой операционной системы
- •Получение оперативной справки
- •Команда help
- •Команда describe
- •Редактирование команд
- •Форматирование результатов запросов
- •Стандартный формат столбцов
- •Команда column
- •Команда break
- •Команда compute
- •Команда clear
- •Команды btitle и ttitle
- •Команды repheader и repfooter
- •Копирование данных из одной базы данных в другую
- •Команды для работы с файлами
- •Создание командных файлов
- •Команда save
- •Команда edit
- •Загрузка командных файлов
- •Выполнение командных файлов
- •Передача параметров командных файлов при вызове
- •Сокращенные формы команды start (@, @@)
- •Коды возврата командных файлов
- •Комментарии в командных файлах
- •Запоминание установок среды sql*Plus
- •Запись в файл и печать результатов выполнения запросов
- •Параметры командных файлов
- •Команды define и undfefine
- •Использование подставляемых переменных
- •Подстановка без повторного запроса
- •Подстановка параметров командных файлов
- •Ограничения
- •Системные переменные, влияющие на подстановку
- •Взаимодействие с пользователем
- •Команда prompt
- •Команда accept
- •Команда pause
- •Связываемые переменные
- •Команда variable
- •Команда print
- •Трассировка операторов
- •Настройка среды sql*Plus
- •Команда set
- •Команда show
- •Другие полезные команды
- •Команда execute
- •Команда password
- •Команды администрирования базы данных
- •Запуск базы данных
- •Остановка базы данных
- •Управление архивированием журналов повторного выполнения
- •Восстановление базы данных
- •Дополнительные источники информации
Взаимодействие с пользователем
Стандартный механизм запроса значений пользовательских переменных дает ограниченные средства взаимодействия с пользователем - ввод значений в ответ на стандартные приглашения. Утилита SQL*Plus позволяет управлять выдачей сообщений и запросом значений переменных.
Команда prompt
Для выдачи на экран произвольного текста используется команда PROMPT со следующим синтаксисом:
<команда PROMPT> ::=
PRO[MPT] [<текст>]
Она выдает указанный текст или пустую строку (при вызове без параметров). Если необходимо выдать несколько строк, для каждой строки выполняется отдельная команда PROMPT.
Команда accept
Считать строку и запомнить ее в указанной пользовательской переменной определенного типа (выдавая, при необходимости, приглашение) позволяет команда ACCEPT со следующим синтаксисом:
<команда ACCEPT> ::=
ACC[EPT] <имя переменной> [<тип переменной>] [FOR[MAT] <формат>] [DEF[AULT] <стандартное значение>] [<приглашение>] [HIDE]
<тип переменной> ::=
NUM[BER] | CHAR | DATE
<приглашение> ::=
PROMPT <текст> | NOPR[OMPT]
Если указанная в команде ACCEPT пользовательская переменная не существует, SQL*Plus создает ее. Опции команды ACCEPT описаны в табл. 14.
Таблица 14. Опции команды ACCEPT.
Опция |
Назначение |
NUMBER |
Задает переменной тип NUMBER. Если введенное значение не приводится к этому типу, команда ACCEPT выдает сообщение об ошибке и запрашивает значение снова. |
CHAR |
Задает переменной тип CHAR. Длина строки-значения не должна превышать 240 байтов. |
DATE |
Задает переменной тип DATE. Если введенное значение не преобразуется в тип DATE с учетом текущего формата даты в сеансе (NLS_DATE_FORMAT), команда ACCEPT выдает сообщение об ошибке и запрашивает значение снова. |
FORMAT |
Явно задает формат, которому должно соответствовать введенное значение. Формат задается так же, как для команды COLUMN. Если значение не соответствует формату, команда ACCEPT выдает сообщение об ошибке и запрашивает значение снова. |
DEFAULT |
Задает стандартное значение, если оно не будет введено. Стандартное значение должно соответствовать стандартному или указанному формату. |
PROMPT |
Выдает на экран указанный текст перед ожиданием ввода значения переменной. |
NOPROMPT |
Выдает перевод строки и ждет ввода значения, не выдавая приглашений. |
HIDE |
Подавляет выдачу вводимого значения на экран по ходу ввода. |
Рассмотрим простой пример совместного использования команд PROMPT и ACCEPT. Пусть имеется командный файл splus1.sql со следующим содержимым:
REM splus1.sql - пример диалога с пользователем
prompt
prompt Input department number (10, 20, 30)
accept dept_number number prompt 'Dept. #: '
select * from dept
where deptno = &dept_number;
Вот что происходит при его выполнении:
SQL> @f:\usr\doc\orasdev\splus1
Input department number (10, 20, 30)
Dept. #: q
SP2-0425: "q" не является допустимым числом
Dept. #: 10
прежний 2: where deptno = &dept_number
новый 2: where deptno = 10
DEPTNO DNAME LOC
---------- -------------- -------------
10 ACCOUNTING NEW YORK