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).