Назад    Оглавление    Далее

3. Среда SQL*Plus

SQL*Plus - это среда, разработанная фирмой Oracle, для реализации простого командного интерфейса доступа к СУБД и выполнения команд SQL и PL/SQL с дополнительными возможностями. Использовать команды SQL*Plus можно при написании даже самых основных команд SQL. В этом разделе показано, как с помощью команд SQL*Plus делать следующее:

 

Запуск SQL*Plus

Способ вызова SQL*Plus зависит от используемой операционной системы или среды Windows.

Вход в SQL*Plus из среды Windows.

В менеджере программ дважды щелкнуть на пиктограмме SQL*Plus, после чего ввести имя пользователя и, если требуется, пароль и имя базы данных.

Вход в SQL*Plus из командной строки.

На своей машине в ответ на приглашение операционной системы введите команду SQL*Plus.

sqlplus [имя_пользователя [/пароль [@база_данных]]]

где:

имя_пользователя

Имя пользователя базы данных

пароль

Пароль для входа в базу данных. Если ввести его здесь, он будет виден на экране.

база_данных

Строка подключения к базе данных.

Примечание: Для сохранения секретности своего пароля не следует вводить его в ответ на приглашение операционной системы. Лучше ввести только имя пользователя, а пароль ввести позже в ответ на приглашение "Password".

После входа в SQL*Plus на экране появляется следующее сообщение:

Вывод структуры таблицы.

Структуру таблицы в SQL*Plus можно получить с помощью команды DESCRIBE. В результате выполнения команды на экран выводятся имена столбцов, типы данных и сведения об обязательности присутствия данных в столбцах.

DESC[RIBE] имя таблицы

где

Имя таблицы

Имя существующей таблицы, представления или синонима, доступных пользователю.

Пример Вывод информации о структуре таблицы S_DEPT.

Результат выполнения команды:

Name
-------------
Null?
--------------
Type
-----------------------------
ID NOT NULLNUMBER(7)
NAMENOT NULLVARCHAR2 (25)
REGION_ID  NUMBER(7)

где

NameИмя столбца
Null?Показывает может ли столбец содержать неопределенные данные
TypeПоказывает тип данных

 

Команды SQL*Plus

Команды редактирования SQL*Plus.

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

Примечание: Если нажать клавишу [RETURN] до завершения команды, SQL*Plus выдает приглашение в виде номера строки. Ввод в буфер SQL прекращается вводом одного из символов окончания (точки с запятой или дробной черты) или двукратным нажатием на [RETURN]. После этого на экран выводится приглашение SQL.

Команды редактирования SQL*Plus:

КомандаОписание
A[PPEND] текстДобавить текст в конец текущей строки.
C[HANGE] /старый/новый/Заменить в текущей строке старый текст на новый.
C[HANGE] /текст/Удалить текст из текущей строки.
CL[EAR] BUFF[ER]Удалить все строки из буфера SQL.
DELУдалить текущую строку.
DEL nУдалить строку, заданную параметром n.
DEL m nУдалить строки от m до n.
I[NPUT]Вставить неопределенное количество строк.
I[NPUT] текстВставить строку, состоящую из текста.
L[IST]Вывести список всех строк в буфере SQL.
L[IST] nВывести одну строку (с номером n).
L[IST] n mВывести диапазон строк от n до m.
R[UN]Вывести и выполнить команду из буфера SQL.
nУказать строку, которая должна стать текущей.
n текстЗаменить строку n текстом.
0 текстВставить строку перед строкой 1.

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

Команды работы с файлами.

КомандаОписание
SAV[E] имя_фаила[.ext] [REP[LACE]|APP[END]] Сохраняет в файле текущее содержимое буфера SQL в файле. APPEND используется для добавления информации в существующий файл. REPLACE перезаписывает существующий файл. По умолчанию файл имеет расширение .sql.
GET имя_файла.[ext] Вызывает содержимое ранее сохраненного файла в буфер SQL. По умолчанию файл имеет расширение .sql.
START имя_фаила.[ext] Запускает выполнение ранее сохраненного файла команд.
@ имя_файла.[ext] Запускает выполнение файла команд (как и команда START).
EDIT Вызывает редактор и сохраняет содержимое буфера в файле afiedt.buf.
ED[IT] [имя_файла[.ехt]] Вызывает редактор для редактирования сохраненного файла.
SPO[OL] [имя_файла[.ехt] | ОFF | OUT] Записывает результаты запроса в файл. OFF закрывает буферный файл (спул-файл). OUT закрывает буферный файл и посылает результаты из файла на системный принтер.
EXIT Выход из SQL*Plus.

Примечание: Для замены текстового редактора следует изменить значение переменной _EDITOR среды SQL*Plus с помощью команды DEFINE.

В ответ на приглашение SQL можно ввести только одну команду SQL*Plus. Чтобы продолжить команду SQL на следующей строке, поставьте в конце текущей строки знак переноса (-).

Команда COLUMN.

Управление столбцом отчета осуществляется с помощью команды COLUMN. Можно, например, изменить заголовок, ширину и формат.

Синтаксис

COL[UMN] [{column | alias} [option ...]]

Опции команды COLUMN:

Опция

Описание

CLE[AR]

Отменяет любые форматы столбцов.

FOR[MAT] format

Меняет отображение данных столбца.

HEA[DING] text

Задает заголовок столбца. Вертикальная линия (|) задает переход на новую строку в заголовке, если вы не используете выравнивание.

JUS[TIFY] {align}

Выравнивает заголовок столбца (не данные!) слева, справа или по центру.

NOPRI[NT]

Прячет столбец.

NUL[L] text

Задает text, который должен отображаться в случае неопределенных значений.

PRI[NT]

Показывает столбец.

TRU[NCATED]

Усекает строку в конце первой строки дисплея.

WRA[PPED]

Переходит на следующую строку в конце строки.

WOR[DWRAPPED]

То же, что и WRAPPED, но слова не разбиваются.

Длинную команду можно перенести на следующую строку. Для этого текущую строку следует закончить символом переноса (-).

Определение переменных во время выполнения

SQL*Plus позволяет создавать интерактивные отчеты, когда пользователя приглашают ввести значения, ограничивающие объем выходных данных. Для создания отчета в командный файл или в отдельные команды SQL включаются, так называемые, переменные подстановки (подстановочные переменные). Иными словами, переменная выступает в роли контейнера , в котором временно хранятся значения.

Переменные подстановки в SQL*Plus используются для временного хранения значений.

Цели использования переменных:

Переменные подстановки с одним амперсандом (&).

Пользователь может динамически ограничивать выбираемые строки с помощью переменной подстановки, которой предшествует один амперсанд ‘&’. Значение такой переменной запрашивается при каждом выполнении команды. Команда SET VERIFY задает вывод текста команды до и после того, как SQL*Plus замещает переменные подстановки значениями.

Пример: Создание команды, которая во время выполнения запрашивает номер отдела у пользователя. Отчет должен содержать учетный номер, фамилию и размер заработной платы каждого служащего.

Подстановка текстовых переменных и дат

Пример: Вывод номера, фамилии и размера заработной платы служащих, находящихся на конкретной должности. Должность запрашивается во время выполнения.

С помощью переменных подстановки можно задать:

Пример: Вывод номера заказа, любого другого столбца и любого условия заказа. Попробуйте разные условия и имена столбцов и сравните результаты.

Определение переменных пользователя.

Задать переменные можно до выполнения команды SELECT. Для определения переменных используются две команды SQL*Plus:

SQL*Plus использует команду DEFINE для подстановки переменной с двойным амперсандом. Если в команде DEFINE требуется задать строку с символом пробела, эта строка должна быть заключена в апострофы.

Команда

Описание

DEFINE переменная = значение

Создание переменной типа CHAR и присвоение ей значения

DEFINE переменная

Вывод переменной, ее значения и типа данных.

DEFINE

Вывод всех переменных пользователя, их значений и типа данных.

ACCEPT (синтаксис см. ниже)

Чтение строки, введенной пользователем, и сохранение ее в переменной.

Команда ACCEPT.

Сокращенный синтаксис

ACCEPT переменная [тип_данных] [FORMAT] [PROMPT текст] [HIDE]

где

переменная Имя переменной, где хранится значение. Если переменная не существует, SQL*Plus ее создает.
тип_данных NUMBER, CHAR или DATE. Максимальная длина для типа CHAR – 240 байтов. DATE сверяется с моделью формата.
FOR[MAT] Модель формата – например, А10 или 9.999.
PROMPT текст текст, который выдается прежде, чем пользователь может ввести значение.
HIDE Предотвращает отображение данных, введенных пользователем – например, пароля.

Если для определения переменной используется команда ACCEPT, амперсанд перед параметром подстановки не ставится.

Пример:

Пример: Вывод номера и названия региона для заданного отдела. Создайте командный файл 17 prompt и используйте команду ACCEPT для настройки приглашения к вводу данных.

Команда SET ECHO

От переменной ECHO зависит, печатают ли команды START и @ каждую команду командного файла по мере ее выполнения. В случае ECHO ON команда печатается, а в случае ECHO OFF – нет.

Команда UNDEFINE

Переменная сохраняет свое значение до ее очистки командой UNDEFINE или до завершения сеанса работы в SQL*Plus. Проверить неопределенные переменные можно с помощью команды DEFINE.

Передача значений переменных в командный файл.

Для того, чтобы значения переменных передать в качестве параметров в командный файл, необходимо следовать следующим правилам:

Пример: Запустить на выполнение команды, содержащиеся в файле my_file. Передать скрипту параметры value1 и value2

Как использовать команды SQL в среде SQL*Plus

Следуя этим простым правилам и указаниям, можно задавать правильные команды в среде SQL*Plus для обработки на сервере баз данных, которые легко читать и редактировать.

Для закрепления материала можно выполнить Практическое задание 6, но только после того, как будет изучен материал следующего раздела.


Назад    Оглавление    Далее