SQL Plus: Создание и выполнение сценариев - Запуск SQL*Plus и выход из него
ОГЛАВЛЕНИЕ
Запуск SQL*Plus и выход из него
Для запуска утилиты SQL*Plus используется команда операционной системы, обычно - sqlplus. Запуск выполняется из командного интерпретатора или окна командной строки.
В версиях для операционных систем Microsoft использовались другие имена команды для вызова SQL*Plus, например, sqlplus30. В настоящее время (начиная с версии 8.1.5) в этих операционных системах имеется две версии этой утилиты: sqlplus, работающая в окне командной строки, и оконная версия, sqlplusw.
Общий синтаксис вызова SQL*Plus имеет вид:
- sqlplus [<опции>] [<регистрационная информация>] [<начальный сценарий>]
где:
- <опции> ::=
- -H[ELP]
/ -V[ERSION]
/ -M[ARKUP] <опция разметки> [-R[ESTRICT] <уровень> [-S[ILENT]]] - <опция разметки> ::=
- HTML [<вкл-выкл>] [HEAD <текст>] [BODY <текст>] [TABLE <текст>]
[ENTMAP <вкл-выкл>] [SPOOL <вкл-выкл>] [PRE[FORMAT] <вкл-выкл>] - <вкл-выкл> ::=
- ON / OFF
- <уровень> ::=
- 1 / 2 / 3
- <регистрационная информация> ::=
- <пользователь и база данных> [AS <роль пользователя>]
/ /NOLOG - <пользователь и база данных> ::=
- <имя пользователя>[/<пароль>][@<строка связи>] / / <роль пользователя> ::=
- SYSOPER / SYSDBA
- <начальный сценарий> ::=
- @<имя или ссылка> [<аргументы сценария>]
- <имя или ссылка> ::=
- <имя файла>[.<расширение>] / <URI>
- <аргументы сценария> ::=
- <аргумент>{<пробелы><аргумент>}
Опции командной строки
Как следует из синтаксиса, при вызове SQL*Plus можно указать ряд опций. Они кратко описаны в табл. 1.
Таблица 1. Опции командной строки утилиты SQL*Plus.
Опция | Назначение |
HELP | Выдает информацию об использовании и синтаксисе вызова команды sqlplus и завершает работу. |
VERSION | Выдает информацию о версии утилиты SQL*Plus и завершает работу. |
MARKUP | Опция MARKUP позволяет генерировать полную HTML-страницу по результатам запроса или сценария. |
RESTRICT | Позволяет отключить ряд команд, взаимодействующих с операционной системой. Если указан уровень ограничения 3, сценарий login.sql в текущем каталоге не читается. Стандартный сценарий запуска glogin.sql читается, но ограниченные команды в нем не работают. Команды, недопустимые на каждом из уровней ограничения, представлены ниже в табл. 2. |
SILENT | Подавляет выдачу всех информационных сообщений и приглашений SQL*Plus, включая приглашение командной строки, эхо команд и начальную информацию, обычно выдаваемую при входе в SQL*Plus. Используется при вызове SQL*Plus из другой программы, когда его желательно скрыть, и совместно с опцией MARKUP при создании Web- отчетов. |
Таблица 2. Команды, отключаемые уровнями ограничения.
Команда | Уровень 1 | Уровень 2 | Уровень 3 |
EDIT | отключена | отключена | отключена |
GET | отключена | ||
HOST, ! | отключена | отключена | отключена |
SAVE | отключена | отключена | |
SPOOL | отключена | отключена | |
START, @, @@ | отключена | ||
STORE | отключена | отключена |
Регистрационная информация
При запуске SQL*Plus необходимо ввести регистрационную информацию . Если эта информация не указана, но указан начальный сценарий , предполагается, что регистрационная информация указана в первой строке сценария. Если регистрационная информация не указана ни в командной строке, ни в начальном сценарии, SQL*Plus запросит ее.
Если указано имя пользователя и не указан пароль, SQL*Plus запросит только пароль. При установке опции SILENT, приглашения для ввода имени пользователя и пароля не выдаются, введенное имя пользователя отображается, а пароль, как обычно, нет.
Если вместо имени пользователя и пароля указана косая (/), предполагается стандартная регистрация от имени пользователя операционной системы (аутентификация операционной системой). При этом нельзя указывать строку связи. Cервер регистрирует пользователя OPS$ name , где name - регистрационное имя текущего пользователя операционной системы. Префикс "OPS$" можно заменить любым другим с помощью соответствующего параметра инициализации сервера (OS_AUTHENT_PREFIX).
Назначение роли позволяет получить привилегированное подключение пользователям, имеющим системные привилегии SYSOPER или SYSDBA. Такое привилегированное подключение можно получить и при запуске с опциями / или /NOLOG. При указании роли пользователя во многих операционных системах (например, в NT) необходимо взять все аргументы команды в кавычки:
SQLPLUS "/ AS SYSDBA" SQLPLUS "SYSTEM/MANAGER AS SYSOPER"
Опция /NOLOG позволяет запустить утилиту SQL*Plus без регистрации. Прежде, чем выполнять любые SQL-операторы, придется выполнить команду CONNECT для подключения. Эта опция обычно используется при запуске сценариев, явно подключающихся к базе данных с помощью команды CONNECT.
Начальный сценарий
При запуске можно выполнить начальный сценарий (файл с командами SQL*Plus, операторами SQL и анонимными PL/SQL-блоками) и передать ему аргументы. Этот файл может находиться в локальной файловой системе или (только в версии 9.0.1 для Windows) на Web-сервере. Начальный сценарий запускается так же, как если бы он был передан в качестве аргумента команде START.
Если для начального сценария не указан суффикс в имени файла, используется суффикс. заданный командой SET SUFFIX (по умолчанию, .sql).
Использование профилей сайта и пользователя
Утилита SQL*Plus поддерживает использование профиля сайта - командного файла, создаваемого администратором базы даных и автоматически выполняемого при регистрации любого пользователя. Этот файл обычно называется glogin.sql и находится в каталоге $ORACLE_HOME/sqlplus/admin.
- Примечание
- Здесь и далее $ORACLE_HOME означает начальный каталог, в который установлено используемое программное обеспечение Oracle. При указании имен файлов и каталогов используются соглашения ОС UNIX.
Утилита SQL*Plus поддерживает также использование профиля пользователя - командного файла, выполняемого автоматически при регистрации пользователя после профиля сайта. Утилита SQL*Plus ищет файл профиля, login.sql, в текущем каталоге или, если не находит его там, в каталогах поиска файлов SQL-сценариев, задаваемых обычно переменной среды SQLPATH.
В случае неудачной регистрации (после трехкратного запроса имени пользователя и пароля), утилита SQL*Plus завершает работу с кодом возврата, аналогичным получаемому по команде EXIT FAILURE.
Выход из SQL*Plus
Для выхода из SQL*Plus необходимо ввести команду EXIT. Будет выдана информация о версии сервера, к которому была подключена утилита, и о версии SQL*Plus. Затем работа программы завершается и либо закрывается окно, либо вы получаете приглашение командной строки операционной системы.
Команда EXIT имеет следующий синтаксис:
- <команда EXIT> ::=
- EXIT [<код возврата>][<завершение транзакции>]
QUIT [<код возврата>][<завершение транзакции>] - <код возврата> ::=
- SUCCESS / FAILURE / WARNING
/ <целое число> / <переменная> / :<связываемая переменная> - <завершение транзакции> ::=
- COMMIT / ROLLBACK
По умолчанию при выполнении команды EXIT SQL*Plus фиксирует текущую транзакцию и завершает работу с кодом возврата 0 (SUCCESS).