- •Приложение. Утилита 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
- •Команды администрирования базы данных
- •Запуск базы данных
- •Остановка базы данных
- •Управление архивированием журналов повторного выполнения
- •Восстановление базы данных
- •Дополнительные источники информации
Выполнение блоков pl/sql
Для ввода блоков PL/SQL необходимо работать в режиме PL/SQL. Утилита SQL*Plus переходит в это режим, если:
в командной строке введено ключевое слово DECLARE или BEGIN;
введена одна из команд SQL, создающая хранимую программную единицу, например, CREATE PROCEDURE.
Утилита SQL*Plus обрабатывает блоки PL/SQL так же, как и операторы SQL, за исключением точки с запятой и пустой строки. В режиме PL/SQL их ввод не вызывает выполнения или завершения команды. Чтобы завершить и выполнить блок PL/SQL, необходимо ввести строку с единственным символом - косой чертой (/). Чтобы завершить ввод блока и просто поместить его в буфер SQL, не выполняя, введите строку с единственным символом точка (.).
Выполнение команд sql*Plus
Команды SQL*Plus выполняются сразу и в буфер SQL не попадают. Завершать команды SQL*Plus точкой с запятой можно, но не обязательно. Большинство команд SQL*Plus можно сокращать до одной или нескольких первых букв, достаточных для однозначного определения команды.
Если необходимо ввести длинную команду SQL*Plus, ее можно перенести на следующую строку. Для этого в конце строки необходимо ввести дефис (-) и только затем нажать клавишу Enter. Будет выдано приглашение, и ввод команды можно будет продолжить.
Точно так же интерпретируется дефис и в операторах SQL - если это последний не пробельный символ в строке, он не попадет в буфер и считается просто признаком продолжения команды на следующей строке.
Прекращение команды по ходу работы
Для прекращения долго выполняющейся команды по ходу работы, необходимо ввести символ прерывания, обычно, Ctrl+C. При этом SQL*Plus прекратит выдачу результатов команды и выдаст приглашение.
Прекратить таким способом команду, выдающую результаты в файл с помощью команды SPOOL, нельзя. Придется прекратить работу утилиты SQL*Plus, в которой была выдана команда, средствами операционной системы.
Получение информации о времени выполнения команды
Для сбора и выдачи данных о вычислительных ресурсах, использованных для выполнения одной или нескольких команд или блоков, предназначена команда TIMING. Она имеет следующий синтаксис:
<команда TIMING> ::=
TIMI[NG] <команда таймера>
<команда таймера> ::=
START [<имя таймера>] | SHOW | STOP
Назначение команд таймера описано в табл. 3.
Таблица 3. Команды таймера SQL*Plus.
Команда |
Назначение |
START |
Запускает таймер и дает ему указанное имя. Можно использовать несколько активных таймеров, запуская дополнительные с помощью команды START прежде, чем останавливать исходный. Последний запущенный таймер становится текущим. |
SHOW |
Выдает имя и данные (время работы) текущего таймера. |
STOP |
Выдает имя и данные (время работы) текущего таймера, а затем останавливает и удаляет таймер. Если активно несколько таймеров, следующий, предпоследний по времени запуска, становится текущим. |
Команда TIMING без параметров выдает количество активных таймеров.
Рассмотрим пример использования команды TIMING:
SQL> timing start first
SQL> select * from dept;
DEPTNO DNAME LOC
---------- -------------- -------------
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
SQL> timing show
таймер для: first
Затрач.время: 00:00:16.74
SQL> timing stop
таймер для: first
Затрач.время: 00:00:21.20
SQL>
Для удаления всех таймеров используется команда CLEAR TIMING.
Можно также автоматически выдавать время работы каждой команды помощью установки SET AUTOTRACE. Подробнее см. далее в разделе "Настройка среды SQL*Plus".