Выбрать главу

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 после этого будут выведены