SQL*Plus — различия между версиями

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 19:33, 23 мая 2020.
м
м
 
(не показаны 3 промежуточные версии этого же участника)
Строка 17: Строка 17:
 
*посылать и принимать сообщения от конечных пользователей;
 
*посылать и принимать сообщения от конечных пользователей;
 
*администрировать базу данных.
 
*администрировать базу данных.
 +
 +
== Базовые понятия ==
 +
При работе с SQL*Plus используются следующие базовые понятия:
 +
{| class="wikitable"
 +
|-
 +
| Команда || Команда SQL*Plus или оператор SQL Oracle
 +
|-
 +
| Блок PL/SQL || Группа взаимосвязанных операторов PL/SQL, оформленная в виде анонимного блока
 +
|-
 +
| Таблица || Базовая единица хранения данных в Oracle
 +
|-
 +
| Запрос || SQL-оператор SELECT, выбирающий информацию из одной или нескольких таблиц
 +
|-
 +
| Результаты запроса || Данные, возвращенные запросом
 +
|-
 +
| Отчет || Результаты запроса, сформатированные с помощью команд SQL*Plus
 +
|}
 +
 +
== Опции командной строки ==
 +
Как следует из синтаксиса, при вызове SQL*Plus можно указать ряд опций.
 +
{| class="wikitable"
 +
|-
 +
! Опция !! Назначение
 +
|-
 +
| 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*Plus выдает приглашение командной строки (обычно, это строка "SQL> "), после которого можно вводить команды. Команды состоят из одного или нескольких слов, разделенных произвольным количеством пробелов и/или символов табуляции. Регистр символов в командах обычно не имеет значения. При нажатии клавиши Enter команда (при выполнении определенных условий по ее завершению) выполняется. После выполнения команды снова выдается приглашение.
 +
 
 +
Некоторые команды, например, блоки PL/SQL, могут занимать несколько строк. Тогда SQL*Plus выдает дополнительные приглашения с номером строки, например, "2> ".
 +
 
 +
В командной строке SQL*Plus можно вводить команды трех видов:
  
 
*SQL-выражения
 
*SQL-выражения
Строка 27: Строка 65:
 
  команды мониторинга окружающей среды, такие как SHOW
 
  команды мониторинга окружающей среды, такие как SHOW
 
Сценарии могут включать в себя все эти компоненты.
 
Сценарии могут включать в себя все эти компоненты.
 +
 +
== Выполнение команд ==
 +
Программист Oracle в программной среде может запустить SQL*Plus, например, путём ввода команды:
 +
  sqlplus scott/tiger
 +
где пользователь scott имеет пароль tiger . SQL*Plus затем представляет строку приглашения по умолчанию:
 +
  SQL>
 +
Интерактивное использование можно начать с ввода SQL-выражения (завершается точкой с запятой), PL/SQL блока, или другой команды. Например:
 +
  SQL> select 'Hello world' as example from dual;
 +
  EXAMPLE
 +
  --------------------------------
 +
  Hello world
 +
 +
==== Буфер SQL ====
 +
Последнюю введенную команду (SQL-оператор или блок PL/SQL) SQL*Plus хранит в области, которая называется буфер SQL. Оператор или блок остается в этом буфере пока не будет введен новый. В буфер SQL не попадает точка с запятой или косая, завершающая оператор или блок, соответственно. Содержимое буфера SQL можно редактировать и выполнять повторно.
 +
 +
Для повторного выполнения содержимого буфера SQL используется команда RUN или косая черта (/). Команда RUN выдает содержимое буфера в стандартный выходной поток, а затем выполняет. Косая черта вызывает просто выполнение команды из буфера.
 +
 +
==== Выполнение операторов 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. Будет выдано приглашение, и ввод команды можно будет продолжить.
 +
 +
Точно так же интерпретируется дефис и в операторах SQL - если это последний не пробельный символ в строке, он не попадет в буфер и считается просто признаком продолжения команды на следующей строке.
 +
==== Прекращение команды по ходу работы ====
 +
Для прекращения долго выполняющейся команды по ходу работы, необходимо ввести символ прерывания, обычно, Ctrl+C. При этом SQL*Plus прекратит выдачу результатов команды и выдаст приглашение.
 +
 +
Прекратить таким способом команду, выдающую результаты в файл с помощью команды SPOOL, нельзя. Придется прекратить работу утилиты SQL*Plus, в которой была выдана команда, средствами операционной системы.
 +
 +
== Совместимость ==
 +
Другие производители сделали своё программное обеспечение частично совместимым со скриптовыми командами SQL*Plus или предлагают подобный SQL*Plus режим работы, в частности продукты компаний Quest Software и Embarcadero для работы с базами данных.
  
 
== Источники ==
 
== Источники ==
#История, типы команд, использование, совместимость URL: https://ru.wikipedia.org/wiki/SQL*Plus#%D0%98%D1%81%D1%82%D0%BE%D1%80%D0%B8%D1%8F.org  (дата обращения: 23.05.2020)
+
#История, типы команд, совместимость URL: https://ru.wikipedia.org/wiki/SQL*Plus#%D0%98%D1%81%D1%82%D0%BE%D1%80%D0%B8%D1%8F.org  (дата обращения: 23.05.2020)
#Назначение, основные команды URL: http://citforum.ru/database/oracle/sqlplus/.org  (дата обращения: 23.05.2020)
+
#Назначение, базовые понятия, выполнение команд  URL: http://citforum.ru/database/oracle/sqlplus/#table_1.org  (дата обращения: 23.05.2020)

Текущая версия на 19:33, 23 мая 2020

SQL*Plus - программа-интерпретатор командной строки для работы с системой управления базами данных Oracle Database, в которой могут выполняться команды SQL и PL/SQL в интерактивном виде или из сценария.

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

История

Первая версия SQL*Plus заменила UFI («дружественный интерфейс»). UFI появилась в базе данных Oracle до 4 версии. Позже были добавлены новые возможности для UFI и его имя стало Расширенный UFI (англ. Advanced UFI). Потом название изменили на SQL*Plus.

По состоянию на 2020 год продукт продолжает носить имя SQL*Plus.

Назначение

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

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

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

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

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

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

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

Опция Назначение
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 можно вводить команды трех видов:

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

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

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

Программист Oracle в программной среде может запустить SQL*Plus, например, путём ввода команды:

 sqlplus scott/tiger

где пользователь scott имеет пароль tiger . SQL*Plus затем представляет строку приглашения по умолчанию:

 SQL>

Интерактивное использование можно начать с ввода SQL-выражения (завершается точкой с запятой), PL/SQL блока, или другой команды. Например:

 SQL> select 'Hello world' as example from dual;
 EXAMPLE
 --------------------------------
 Hello world

Буфер SQL

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

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

Выполнение операторов 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. Будет выдано приглашение, и ввод команды можно будет продолжить.

Точно так же интерпретируется дефис и в операторах SQL - если это последний не пробельный символ в строке, он не попадет в буфер и считается просто признаком продолжения команды на следующей строке.

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

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

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

Совместимость

Другие производители сделали своё программное обеспечение частично совместимым со скриптовыми командами SQL*Plus или предлагают подобный SQL*Plus режим работы, в частности продукты компаний Quest Software и Embarcadero для работы с базами данных.

Источники

  1. История, типы команд, совместимость URL: https://ru.wikipedia.org/wiki/SQL*Plus#%D0%98%D1%81%D1%82%D0%BE%D1%80%D0%B8%D1%8F.org (дата обращения: 23.05.2020)
  2. Назначение, базовые понятия, выполнение команд URL: http://citforum.ru/database/oracle/sqlplus/#table_1.org (дата обращения: 23.05.2020)