SQL*Plus - это среда, разработанная фирмой Oracle, для реализации простого командного интерфейса доступа к СУБД и выполнения команд SQL и PL/SQL с дополнительными возможностями. Использовать команды SQL*Plus можно при написании даже самых основных команд SQL. В этом разделе показано, как с помощью команд 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 NULL | NUMBER(7) |
NAME | NOT NULL | VARCHAR2 (25) |
REGION_ID | NUMBER(7) |
где
Name | Имя столбца |
Null? | Показывает может ли столбец содержать неопределенные данные |
Type | Показывает тип данных |
Команды редактирования 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, но только после того, как будет изучен материал следующего раздела. |