SQIf Plus автоматически увеличивает номера строк при нажатии на клавишу
Enter. Можно сделать строку 1 текущей, для чего достаточно ввести 1
(номер строки) после приглашения:
□ SQL> 1
1* SELECT customer_id, first_name, last_name
SQITPlus выводит текущую строку и её номер. В следующем примере
APPEND используется для того, чтобы добавить ” , dob” в конец строки:
□ SQL> APPEND , DOB
1* SELECT customer_id, f i r s t name, la s t name, dob
70 Глава 3
Затем с помощью команды LIST можно вывести все хранящиеся в буфере
строки:
П SQL> LIST
1 SELECT customer_id, first_name, last_name, dob
2 FROM customers
3* WHERE customer_id = 1
Теперь текущей строкой стала строка 3, о чем свидетельствует проставленная
после номера строки звездочка (* ). При помощи команды CHANGE
заменим в последней строке "customer_id = 1” на “ customer_id = 2” :
□ SQL> CHANGE /customer_id = 1/customer_id = 2
3* WHERE customer_id = 2
Наконец, выполним запрос, используя для этой цели команду RUN:
П SQL> RUN
1 SELECT customer_id, first_name, last_name, dob
2 FROM customers
3* WHERE customer_id = 1
CUSTOMER_ID FIRSTJNAME LAST_NAME DOB
2 Cynthia Green 05-FEB-68
Для выполнения хранящегося в буфере оператора SQL можно использовать
символ прямого слэша (/ ):
□ SQL> /
CUSTOMER_ID FIRST_NAME LAST_NAME DOB
2 Cynthia Green 05-FEB-68
Сохранение, выборка и выполнение файлов
SQITPlus позволяет сохранять, выбирать и выполнять сценарии, содержащие
команды SQITPlus и выражения SQL. Выше (см. главу 1) был дан пример
выполнения сценария SQLfPlus: был выполнен сценарий store_schema.
sq l, с помощью которого создается схема store.
В приведенной ниже таблице перечислены некоторые команды для работы
с файлами.
Команда
SAV[E] имя_файла
[{REPLACE |
APPEND}]
GET имя_файла
Описание
Сохраняет содержимое буфера SQITPlus в файл с именем
имя_файла. Можно добавить содержимое буфера к
существующему файлу, если использовать опцию
APPEND. Можно также перезаписать существующий
файл, используя опцию REPLACE.
Выбирает содержимое файла с именем имя_файла в буфер
SQI?Plus.
Использование SQL*Plus 71
ST[ART] имя_фай- Выбирает содержимое файла с именем имя_файла в бу-
ла фер SQDPlus и делает попытку выполнить содержимое
буфера.
@ имя_файла То же самое, что и команда START.
ED [ IT ] Копирует содержимое буфера SQDPlus в файл по
имени a f ie d t . buf, а затем запускает используемый по
умолчанию текстовый редактор вашей операционной
системы. После выхода из редактора содержимое отредактированного
файла копируется в буфер
SQDTlus.
ED[ IT] имя_файла То же самое, что и команда EDIT, но вы можете дополнительно
указать имя файла. Это имя указывается с
помощью параметра имя_файла.
SP0[0L] имя_фай- Копирует выходные данные SQDPlus в файл с имела
нем имя_файла.
SP0[0L] OFF Прекращает копирование выходных данных из
SQDTlus в файл и закрывает этот файл.
Рассмотрим несколько примеров применения этих команд SQDPlus.
Сначала введем в SQDPlus следующий оператор SQL:
□ SQL> SELECT customer_id, first_name, last_name
2 FROM customers
3 WHERE customer_id = 1;
Сохраним содержимое буфера SQDPlus в файле cust_query.sql, используя
команду SAVE:
□ SQL> SAVE cus t_query .sql
Created f i l e cus t_query .sql
Примечание По умолчанию файл cust_query.sql будет сохранен в подкаталоге bin, где установлено
программное обеспечение Oracle.
Выберем содержимое файла cust_query. sq l, используя команду GET:
П SQL> GET cus t_query .sql
1 SELECT customer_id, first_name, last_name
2 FROM customers
3* WHERE customer_id = 1
Выполним содержимое файла cust_query. sq l, используя команду/:
□ SQL> /
CUSTOMER_ID FIRST_NAME LAST-NAME
1 John Brown
В следующем примере используется START для загрузки и выполнения
содержимого файла cust_query. sq l за один шаг:
72 Глава 3
□ SQL> START cus t_query.sql
CUSTOMER_ID FIRST_NAME LAST-NAME
1 John Brown
Отредактируем буфер SQI?Plus, используя команду EDIT:
□ SQL> EDIT
Команда EDIT запускает используемый по умолчанию редактор операционной
системы. В Windows таким редактором будет Notepad (блокнот),
а в Unix или Linux - vi или emacs.
На рис. 3.1 изображено содержимое буфера SQLfPIus в редакторе
Notepad. В качестве символа конца оператора SQL здесь используется символ
слэша (/ ), а не точка с запятой.
| JSij, ctfitnli .(hi! Noh‘p<i<l Р1ИЕЗ
Ffc Edt Format Help .
s e l e c t cu s tom e r_ id , l4 rsT_ name, 1ast_name
FROM customers
where customer_1d ■ 1
/
. d
•» |
Рис. 3.1. Редактирование содержимого буфера SQL*Plus с использованием Notepad
Находясь в редакторе, измените фразу WHERE на WHERE customer_id = 2,
сохраните файл и выйдите из редактора. В Notepad для выхода из редактора
нужно выбрать File | Exit; когда это будет предложено, необходимо
щелкнуть на Yes для сохранения запроса. В SQITPlus после этого будут выведены