Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция 1 - ОБЗОР баз данных Oracle.doc
Скачиваний:
79
Добавлен:
15.05.2015
Размер:
920.58 Кб
Скачать

Использование текстового редактора

Oracle дает вам возможность пользоваться своим любимым текстовым ре­дактором для редактирования оператора, созданного в файле afiedt.buf, где SQL*Plus хранит последний выполнявшийся оператор SQL. Для этого достаточно просто набрать команду edit (сокращенно ed). В результате этого действия Oracle перенесет оператор SQL из файла afiedt.buf в используемый по умолчанию текстовый редактор операционной системы. В UNIX-системах это обычно редактор VI или EMACS, в то время как для сред Windows используется Notepad. Чтобы изменить используемый текстовой редактор, задайте в строке приглашения SQL*Plus оператор define_editor='ваш_редактор'.

Совет Можно определить текстовый редактор в графическом интерфейсе пользователя SQL*Plus, используя опции меню Tools \ Environment,

Использование другого текстового редактора, отличающегося от собственного редактора SQL*Plus, предоставляет много преимуществ. Используя хоро­шо известный текстовый редактор, вы сможете более близко познакомиться и с SQL*Plus, что является полезным для адаптации к приложению. Кроме того, при работе с большими запросами полезно держать перед глазами весь блок кода и иметь к нему мгновенный доступ.

Запись команд sql в сценариях

Можно сначала в текстовом редакторе записать целиком тексты запросов, а затем загрузить их в SQL*Plus. Если вы собираетесь поступать именно так, не забудьте при сохранении сценария указать расширение . sgl, чтобы SQL*Plus было легче распознать, что это сценарий. Для загрузки файла сценария в SQL*Plus имеются две команды. Первая из них называется get. Команда get открывает специфицированный файл и помещает его содержимое в файл afiedt.buf. После того как сценарий загружен, вы можете выполнить записанную команду, используя команду слеш (/). Как альтернативный вариант можно использовать команду @ или start, которая загружает операторы SQL из именованного файла в файл afiedt.buf и выполняет их за один шаг. Оба метода показаны в следующем примере; сценарий имеет имя select_emp.sql:

S/home /oracle> sqlplus scott/tiger

SQL*Plus: Release 8.1.7.0.0 - Production on Fri Jul 06 18:53:11 2001

Copyright (c) Oracle Corporation 1979, 2000. All rights reserved.

Connected to Oracle9i Release 9.0.1.0.0

With the partitioning option

JServer Release 9.0.1.0.0 - Production

SQL> GET select_emp

SELECT * FROM еmр

SQL> /

EMPNO ENAME JOB HGR HIREDATE SAL COMM DEPTNO

7369 SMITH CLERK 7902 17-DEC-8Q 300 2.0

7499 ALLEN SALESMAN 7698 20-FEB-S1 1600 300 30

7521 WARD SALESMAN 7698 22-FEB-81 1250 500 30

7566 JONES MANAGER 7839 02-APR-81 2975 20

7654 MARTIN SALESMAN 7698 28-SEP-81 1250 1400 30

7698 BLAKE MANAGER 7839 Ol-MAY-81 2850 30

7782 CLARK MANAGER 7839 09-JUNE-81 2450 10

7788 SCOTT ANALYST 7566 19-APR-87 3000 20

7839 KING PRESIDENT 17-NOV-81 5000 10

7844 TURNER SALESMAN 7698 08-SEP-81 1500 0 30

7876 ADAMS CLERK 7788 23-MAY-87 1100 20

7900 JAMES CLERK 7698 03-DEO81 950 30

7902 FORD ANALYST 7566 03-DEC-81 3000 20

7934 MILLER CLERK 7782 23-JAN-82 1300 10

sql>@select_emp

SELECT * FROM erop

EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO

7369 SMITH CLERK 7902 17-DEC-SQ 800 20

7499 ALLEN SALESMAN 7693 2Q-FEB-81 1600 300 30

7521 WARD SALESMAN 76Э8 22-FEB-81 1250 500 30

7566 JONES MANAGER 7839 02-APR-81 2975 20

7654 MARTIN SALESMAN 7698 28-SEP-81 1250 1400 30

7698 BLAKE MANAGER 783Э Ol-MAY-81 2850 30

7782 CLARK MANAGER 7839 09-JUNE-81 2450 10

7788 SCOTT ANALYST 7566 19-APR-87 3000 20

7839 KING PRESIDENT 17-NOV-81 5000 10

7844 TURNER SALESMAN 76Э8 QS-SEP-81 1500 О 30

7876 ADAMS CLERK 7788 23-MAY-87 1100 20

7900 JAMES CLERK 7698 03-DEC-81 950 30

7902 FORD ANALYST 7566 03-DEC-81 3000 20

7934 MILLER CLERK 7782 23-JAN-82 1300 10

Совет Знак "коммерческое at"(@) перед именем сценария SQL в приведенном выше блоке кода играет другую роль в отличие от того же знака перед именем базы данных, с которым мы столкнулись в одном из предыдущих примеров при запуске SQL *PLus из командной строки. Убедитесь, что вы научились не путать две эти формы его применения.

Обратите внимание, что в строке с командой get после имени файла было опущено расширение .sql. Дело в том, что SQL*Plus предполагает, что все сценарии, содержащие операторы SQL, будут иметь расширение . sql, так что в командах get и @ их можно опустить. Можно хранить команды SQL в текстовых файлах с другими расширениями, например . txt или . 1 s t, но если вы используете такую возможность, следует в команде get указать полное имя файла, включая расширение. К тому же обратите внимание: после того как файл импортирован с помощью команды get, его можно выполнить с помощью команды слеш (/). Далее, в этом же блоке кода мы использовали команду @ для того, чтобы считать тот же самый файл в afiedt.buf. Содержимое буфера выполняется на том же шаге, благодаря чему отпадает необходимость вводить и использовать команду слеш (/). Как и в прошлый раз, мы опустили расширение .sql. И в заключение, если мы при вводе имени файла для команды get или @ не специфицировали путь к файлу, Oracle предполагает, что файл лежит в том же каталоге, из которого был запущен SQL*Plus.

Совет При вводе в сценарий операторов SQL, которые вы собираетесь выполнять в SQL*Plus, не ставьте в конце этих операторов символ точка с запятой " (;). Вместо этого поместите на место первого символа последней строки сценария символ слеш (/). Так нужно поступить, если вы столкнулись с проблемой, когда Oracle сообщает, что обнаружил в сценарии недопустимый символ (точку с запятой).