- •Обзор баз данных Oracle
- •Обзор Oracle
- •Теоретические и физические аспекты реляционных баз данных
- •Рсубд против систем плоских файлов: быстрое ознакомление
- •Закрепление пройденного материала
- •Упражнения
- •Реализации рсубд и орсубд Oracle
- •Дисковые компоненты Oracle
- •Процесс сервера и фоновые процессы Oracle
- •Что такое орсубд
- •Закрепление пройденного материала
- •Упражнения
- •Использование и преимущества pl/sql
- •Закрепление пройденного материала
- •Упражнения
- •Написание основных операторов sql
- •Возможности операторов sql select
- •Познакомьтесь: sql* Plus
- •Закрепление пройденного материала
- •Упражнения
- •Выполнение операторов select
- •Задание префиксов столбцам по имени таблицы
- •Арифметические данные и данные из таблиц
- •Старшинство операторов
- •Обработка значений null
- •Замена заголовков столбцов псевдонимами
- •Объединение столбцов с помощью конкатенации
- •Закрепление пройденного материала
- •Упражнения
- •Различия между командами sql и sql*Plus
- •Использование текстового редактора
- •Запись команд sql в сценариях
- •Другие команды sql*Plus, о которых следует знать
- •Закрепление пройденного материала
- •Упражнения
- •Резюме Обзора баз данных Oracle
- •Двухминутное погружение в пройденное
- •Вопросы для самопроверки
- •Вопросы ко всей теме
Использование текстового редактора
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 сообщает, что обнаружил в сценарии недопустимый символ (точку с запятой).