SQL*Plus

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 21:34, 21 июня 2020.
SQL*Plus
Создатели: Саймон Уотт
Выпущена: June 2005; 15 years ago (2005-06)
Состояние разработки: Активна
Веб-сайт Документация

SQL*Plus - это интерактивный инструмент для пакетных запросов, который устанавливается вместе с Oracle. Он имеет пользовательский интерфейс командной строки, графический пользовательский интерфейс Windows (GUI) и веб-интерфейс iSQL * Plus.[Источник 1]


История

Предшественником SQL * Plus является UFI («дружественный интерфейс»). База данных Oracle включала в себя UFI вплоть до 4 версии. Позже были добавлены новые возможности и название UFI изменили на SQL*Plus. Интерфейс UFI был чрезвычайно примитивным с точки зрения современного пользователя, если оператор был введен неправильно, UFI выдавал ошибку и откатывал всю транзакцию.[Источник 2]

Назначение

Утилита SQL*Plus позволяет выполнять команды SQL и блоки PL/SQL, а также решать ряд других задач.[Источник 3] С помощью SQL*Plus можно:

  • вводить, редактировать, запоминать, загружать и выполнять команды SQL и блоки PL/SQL;
  • форматировать, создавать, сохранять, печатать и публиковать в Web результаты выполнения запросов (отчеты);
  • получать описание (имена и типы столбцов) любой таблицы и представления;
  • обращаться к удаленным базам данных и копировать из них данные;
  • посылать и принимать сообщения от конечных пользователей;
  • администрировать базу данных.

Базовые понятия

При работе с SQL*Plus используются следующие базовые понятия[Источник 3]:

Команда Команда SQL*Plus или оператор SQL Oracle
Блок PL/SQL Группа взаимосвязанных операторов PL/SQL, оформленная в виде анонимного блока
Таблица Базовая единица хранения данных в Oracle
Запрос SQL-оператор SELECT, выбирающий информацию из одной или нескольких таблиц
Результаты запроса Данные, возвращенные запросом
Отчет Результаты запроса, сформатированные с помощью команд SQL*Plus

Опции командной строки

Как следует из синтаксиса, при вызове SQL*Plus можно указать ряд опций.[Источник 4]

Опция Назначение
HELP Выдает информацию об использовании и синтаксисе вызова команды sqlplus и завершает работу
VERSION Выдает информацию о версии утилиты SQL*Plus и завершает работу
MARKUP Опция MARKUP позволяет генерировать полную HTML-страницу по результатам запроса или сценария
RESTRICT Позволяет отключить ряд команд, взаимодействующих с операционной системой. Если указан уровень ограничения 3, сценарий login.sql в текущем каталоге не читается. Стандартный сценарий запуска glogin.sql читается, но ограниченные команды в нем не работают
SILENT Подавляет выдачу всех информационных сообщений и приглашений SQL*Plus, включая приглашение командной строки, эхо команд и начальную информацию, обычно выдаваемую при входе в SQL*Plus. Используется при вызове SQL*Plus из другой программы, когда его желательно скрыть, и совместно с опцией MARKUP при создании Web- отчетов.

Типы команд

После запуска утилита SQL*Plus выдает приглашение командной строки (обычно, это строка "SQL> "), после которого можно вводить команды. Команды состоят из одного или нескольких слов, разделенных произвольным количеством пробелов и/или символов табуляции. Регистр символов в командах обычно не имеет значения. При нажатии клавиши Enter команда (при выполнении определенных условий по ее завершению) выполняется. После выполнения команды снова выдается приглашение.

Некоторые команды, например, блоки PL/SQL, могут занимать несколько строк. Тогда SQL*Plus выдает дополнительные приглашения с номером строки, например, "2> ".

В командной строке SQL*Plus можно вводить команды трех видов[Источник 5]:

  1. SQL-выражения
  2. PL/SQL блоки
  3. внутренние команды SQL*Plus, например:
  • команды контроля окружающей среды, такие как SET
  • команды мониторинга окружающей среды, такие как SHOW

Сценарии могут включать в себя все эти компоненты.

Выполнение команд

Буфер SQL

Последнюю введенную команду (SQL-оператор или блок PL/SQL) SQL*Plus хранит в области, которая называется буфер SQL. Оператор или блок остается в этом буфере пока не будет введен новый. В буфер SQL не попадает точка с запятой или косая, завершающая оператор или блок, соответственно. Содержимое буфера SQL можно редактировать и выполнять повторно.

Для повторного выполнения содержимого буфера SQL используется команда RUN или косая черта (/). Команда RUN выдает содержимое буфера в стандартный выходной поток, а затем выполняет. Косая черта вызывает просто выполнение команды из буфера.[Источник 5]

Выполнение операторов SQL

Оператор SQL можно завершить тремя способами:

  • точкой с запятой (;)
  • строкой, содержащей только косую черту (/)
  • пустой строкой

Точка с запятой в конце строки означает выполнение оператора. Утилита SQL*Plus выполняет оператор и запоминает его в буфере SQL. Этот символ является признаком завершения команды и после него нельзя вводить комментарий.

Косая черта в качестве первого и единственного символа очередной строки означает, что оператор надо выполнить. Утилита SQL*Plus выполняет оператор и запоминает его в буфере SQL.

Пустая строка в операторе SQL или сценарии SQL*Plus обычно означает, что ввод команды завершен, но выполнять ее пока не надо (это поведение можно изменить с помощью команды SQL*Plus SET SQLBLANKLINES). Команда помещается в буфер SQL и остается там, пока не будет введена другая команда.

Выполнение команд SQL*Plus

Команды SQL*Plus выполняются сразу и в буфер SQL не попадают. Завершать команды SQL*Plus точкой с запятой можно, но не обязательно. Большинство команд SQL*Plus можно сокращать до одной или нескольких первых букв, достаточных для однозначного определения команды.

Если необходимо ввести длинную команду SQL*Plus, ее можно перенести на следующую строку. Для этого в конце строки необходимо ввести дефис (-) и только затем нажать клавишу Enter. Будет выдано приглашение, и ввод команды можно будет продолжить.

Прекращение команды по ходу работы

Для прекращения долго выполняющейся команды по ходу работы, необходимо ввести символ прерывания, обычно, Ctrl+C. При этом SQL*Plus прекратит выдачу результатов команды и выдаст приглашение.

Прекратить таким способом команду, выдающую результаты в файл с помощью команды SPOOL, нельзя. Придется прекратить работу утилиты SQL*Plus, в которой была выдана команда, средствами операционной системы.

Архитектура командной строки SQL * Plus и Windows GUI

В командной строке SQL * Plus и графическом интерфейсе Windows используется двухуровневая модель[Источник 1], включающая в себя:

  • Клиент (пользовательский интерфейс командной строки).

Пользовательский интерфейс командной строки - это символьная реализация терминала. Windows GUI - это альтернативный пользовательский интерфейс, доступный в установках Windows.

Компоненты Oracle Database Net обеспечивают связь между клиентом SQL * Plus и базой данных Oracle. Два уровня могут быть на одной машине.

Предварительные условия для SQL * Plus

Прежде чем вы сможете запустить SQL * Plus или iSQL * Plus необходимо[Источник 6]:

  • Установите базу данных Oracle
  • Получите имя пользователя и пароль для входа в базу данных Oracle во время установки или у администратора базы данных.
  • Убедитесь, что образец базы данных установлен, и что у вас есть имя пользователя и пароль для входа во время установки Oracle Database.
  • Создайте базу данных по умолчанию во время установки или получите идентификатор соединения для базы данных Oracle, к которой вы хотите подключиться, у администратора базы данных.
  • Убедитесь, что база данных, к которой вы хотите подключиться, запущена.
  • При использовании iSQL * Plus убедитесь, что у вас есть URL-адрес сервера приложений, к которому вы хотите подключиться, и что сервер приложений доступен и работает.

Запуск командной строки SQL * Plus

Исполняемый файл SQL * Plus обычно устанавливается в $ ORACLE_HOME / bin, который обычно включается в переменную среды PATH операционной системы . Вам может потребоваться изменить каталог на каталог $ ORACLE_HOME / bin, чтобы запустить SQL * Plus.

Пример использования идентификатора Easy Connection для подключения к схеме HR в базе данных MYDB, работающей на mymachine[Источник 7]: sqlplus hr@//mymachine.mydomain:port/MYDB

sqlplus hr@//mymachine.mydomain:port/MYDB  

Пример использования сетевого имени службы:

sqlplus hr@MYDB  

Если вы хотите использовать сетевые имена служб, настроенные в локальном файле Oracle Net tnsnames.ora, то установите переменную среды TNS_ADMIN в каталог, содержащий файл tnsnames.ora. Например, в UNIX, если ваш файл tnsnames.ora находится в / home / user1 и он определяет имя сетевого сервиса MYDB2:

TNS_ADMIN = / home / user1  
export TNS_ADMIN  
sqlplus hr @ MYDB2  

В этом примере предполагается, что переменная среды ORACLE_HOME установлена, а файл $ ORACLE_HOME / network / admin / tnsnames.ora или %ORACLE_HOME% \ network \ admin \ tnsnames.ora определяет сетевое имя службы MYDB3:

sqlplus hr @ MYDB3  

Запуск SQL * Plus и подключение к базе данных по умолчанию

  • Откройте терминал UNIX или Windows и введите команду SQL * Plus:
sqlplus  
  • При появлении запроса введите имя пользователя и пароль Oracle Database. Если вы не знаете свое имя пользователя и пароль для базы данных Oracle, обратитесь к администратору базы данных.
  • В качестве альтернативы введите команду SQL * Plus в формате:
sqlplus username  

Вам будет предложено ввести пароль.

  • SQL * Plus запустится и подключится к базе данных по умолчанию.[Источник 7]

Теперь можно вводить и выполнять операторы и команды SQL, PL / SQL и SQL * Plus в командной строке SQL>.

Запуск SQL * Plus и подключение к базе данных, отличной от стандартной

Откройте терминал UNIX или Windows и введите команду SQL * Plus:

sqlplus username@connect_identifier  

Вам будет предложено ввести пароль.[Источник 7] Теперь можно вводить и выполнять операторы и команды SQL, PL / SQL и SQL * Plus в командной строке SQL>.

Запуск SQL * Plus Windows GUI

Для запуска SQL * Plus Windows GUI и подключения к базе данных[Источник 8]:

  • Нажмите Start > Programs > Oracle-OraHomeName > Application Development > SQL Plus
  • Или откройте терминал Windows и введите команду SQL * Plus:
sqlplusw 
  • Откроется графический интерфейс Windows для Windows * Plus, и отобразится диалоговое окно входа в систему.

Введите имя пользователя и парольOracle Database в диалоговом окне «Вход в систему». Если вы не знаете свое имя пользователя и пароль для базы данных Oracle, обратитесь к администратору базы данных. Введите идентификатор соединения для базы данных, к которой вы хотите подключиться, в поле Host String. Вы можете подключиться к базам данных Oracle8i , Oracle9i и Oracle Database 10g. Оставьте поле Host String пустым, чтобы подключиться к базе данных по умолчанию.

  • Нажмите ОК. SQL * Plus запустится и подключится к базе данных.

Теперь можно вводить и выполнять операторы и команды SQL, PL / SQL и SQL * Plus в командной строке SQL>.

Выход из SQL * Plus

Рекомендуется всегда использовать значок Logout, чтобы выйти из iSQL*Plus и освободить системные и серверные ресурсы.

Для выхода из командной строки SQL * Plus введите EXIT.

Для выхода из графического интерфейса Windows введите EXIT или выберите Exit в меню File.

В iSQL*Plus команда EXIT или QUIT останавливает работающий в данный момент скрипт, но не прерывает сеанс.[Источник 9]

Источники

  1. 1,0 1,1 SQL*Plus Overview : SQL*Plus® User's Guide and Reference // ORACLE Help Center. URL: https://docs.oracle.com/cd/B19306_01/server.102/b14357/qstart.htm#i1056581 (дата обращения 23.05.2020).
  2. What is SQL*Plus and where does it come from? : SQL*Plus FAQ // Oracle FAQ. URL: http://www.orafaq.com/wiki/SQL*Plus_FAQ#What_is_SQL.2APlus_and_where_does_it_come_from.3F (дата обращения 23.05.2020).
  3. 3,0 3,1 Назначение SQL*Plus : Утилита SQL*Plus. Создание и выполнение сценариев // CIT FORUM. URL: http://citforum.ru/database/oracle/sqlplus/#purpose (дата обращения 23.05.2020).
  4. Запуск SQL*Plus и выход из него : Утилита SQL*Plus. Создание и выполнение сценариев // CIT FORUM. URL: http://citforum.ru/database/oracle/sqlplus/#startup (дата обращения 23.05.2020).
  5. 5,0 5,1 Основные команды : Утилита SQL*Plus. Создание и выполнение сценариев // CIT FORUM. URL: http://citforum.ru/database/oracle/sqlplus/#main_commands (дата обращения 23.05.2020).
  6. SQL*Plus Prerequisites : SQL*Plus® User's Guide and Reference // ORACLE Help Center. URL: https://docs.oracle.com/cd/B19306_01/server.102/b14357/qstart.htm#CHDFHFAH (дата обращения 23.05.2020).
  7. 7,0 7,1 7,2 Starting SQL*Plus Command-line : SQL*Plus® User's Guide and Reference // ORACLE Help Center. URL: https://docs.oracle.com/cd/B19306_01/server.102/b14357/qstart.htm#i1055567 (дата обращения 23.05.2020).
  8. Starting SQL*Plus Windows GUI : SQL*Plus® User's Guide and Reference // ORACLE Help Center. URL: https://docs.oracle.com/cd/B19306_01/server.102/b14357/qstart.htm#i1055612 (дата обращения 23.05.2020).
  9. Exiting SQL*Plus : SQL*Plus® User's Guide and Reference // ORACLE Help Center. URL: https://docs.oracle.com/cd/B19306_01/server.102/b14357/qstart.htm#i1049361 (дата обращения 23.05.2020).