- •Приложение. Утилита sql*Plus. Создание и выполнение сценариев Назначение sql*Plus
- •Базовые понятия
- •Расширенные формулы Бэкуса-Наура
- •Запуск sql*Plus и выход из него
- •Опции командной строки
- •Регистрационная информация
- •Начальный сценарий
- •Использование профилей сайта и пользователя
- •Выход из sql*Plus
- •Подключение к стандартной и удаленной базе данных
- •Использование команды connect
- •Формат строки связи для удаленной базы данных
- •Основные команды
- •Выполнение команд Буфер sql
- •Выполнение операторов sql
- •Выполнение блоков pl/sql
- •Выполнение команд sql*Plus
- •Прекращение команды по ходу работы
- •Получение информации о времени выполнения команды
- •Выполнение команд базовой операционной системы
- •Получение оперативной справки
- •Команда help
- •Команда describe
- •Редактирование команд
- •Форматирование результатов запросов
- •Стандартный формат столбцов
- •Команда column
- •Команда break
- •Команда compute
- •Команда clear
- •Команды btitle и ttitle
- •Команды repheader и repfooter
- •Копирование данных из одной базы данных в другую
- •Команды для работы с файлами
- •Создание командных файлов
- •Команда save
- •Команда edit
- •Загрузка командных файлов
- •Выполнение командных файлов
- •Передача параметров командных файлов при вызове
- •Сокращенные формы команды start (@, @@)
- •Коды возврата командных файлов
- •Комментарии в командных файлах
- •Запоминание установок среды sql*Plus
- •Запись в файл и печать результатов выполнения запросов
- •Параметры командных файлов
- •Команды define и undfefine
- •Использование подставляемых переменных
- •Подстановка без повторного запроса
- •Подстановка параметров командных файлов
- •Ограничения
- •Системные переменные, влияющие на подстановку
- •Взаимодействие с пользователем
- •Команда prompt
- •Команда accept
- •Команда pause
- •Связываемые переменные
- •Команда variable
- •Команда print
- •Трассировка операторов
- •Настройка среды sql*Plus
- •Команда set
- •Команда show
- •Другие полезные команды
- •Команда execute
- •Команда password
- •Команды администрирования базы данных
- •Запуск базы данных
- •Остановка базы данных
- •Управление архивированием журналов повторного выполнения
- •Восстановление базы данных
- •Дополнительные источники информации
Стандартный формат столбцов
Ширина числовых столбцов соответствует максимуму из ширины заголовка столбца, ширины, заданной с помощью опции COLUMN FORMAT, плюс один символ для знака, и ширины, заданной командой SET NUMWIDTH (по умолчанию, 10 символов). Если количество значащих цифр в числе больше, чем допускается шириной числового столбца, утилита SQL*Plus округляет число.
Для столбцов других типов ширина столбца соответствует его ширине в базе данных. Все эти столбцы по умолчанию выравниваются влево. Для столбцов типа DATE формат определяется соответствующими NLS-параметрами. Если они не заданы, предполагается формат A9 (см. табл. 6).
Команда column
Команда COLUMN для управления форматом выдачи столбца имеет следующий синтаксис:
<команда COLUMN> ::=
COL[UMN] [<ссылка на столбец> {<опция> }]
<ссылка на столбец> ::=
<имя столбца> | <псевдоним> | <выражение>
<опция> ::=
ALI[AS] <псевдоним> | CLE[AR] | ENTMAP [<вкл./откл.>] | FOLD_A[FTER] | FOLD_B[EFORE] | FOR[MAT] <формат> | HEA[DING] <текст> | JUS[TIFY] <выравнивание> | LIKE <выражение> | <псевдоним> | NEWL[INE] | NEW_V[ALUE] <переменная> | NOPRI[NT] | PRI[NT] | NUL[L] <текст> | OLD_V[ALUE] <переменная> | <вкл./откл.> | WRA[PPED] | WOR[D_WRAPPED] | TRU[NCATED]
<вкл./откл.> ::=
ON | OFF
<выравнивание> ::=
L[EFT] | C[ENTER] | C[ENTRE] | R[IGHT]
Назначение опций форматирования столбца кратко описано в табл. 5.
Таблица 5. Основные опции команды COLUMN.
Опция |
Назначение |
ALIAS |
Присваивает столбцу указанный псевдоним. По этому псевдониму на столбец можно ссылаться в дальнейшем в командах BREAK, COMPUTE и COLUMN. |
CLEAR |
Сбрасывает атрибуты указанного столбца в стандартные значения. |
ENTMAP |
Позволяет включать и отключать форматирование значений столбца для HTML-отчета. Если эта опция для столбца включена, в значениях будут заменяться символы, имеющие управляющее значение в HTML (<, >, & и т.д.). |
FOLD_AFTER |
Вставляет перевод строки после заголовка столбца и каждого значения в данном столбце. Перевод строки не вставляется, если указанный столбец - последний в списке выбора. |
FOLD_BEFORE |
Вставляет перевод строки перед заголовком столбца и каждым значением в данном столбце. Перевод строки не вставляется, если указанный столбец - первый в списке выбора. |
FORMAT |
Задает формат вывода значений столбца. Основные элементы формата представлены в табл. 6 ниже. |
HEADING |
Задает заголовок столбца. Если эта опция не используется, в качестве заголовка используются начальные символы (до ширины столбца) имени столбца или выбираемого выражения. Если в тексте есть пробелы или символы пунктуации, его необходимо брать в одинарные или двойные кавычки. Вместо каждого вхождения символа HEADSEP (по умолчанию - "|") в тексте заголовка вставляется перевод строки. |
JUSTIFY |
Задает выравнивание столбца. По умолчанию столбцы типа NUMBER выравниваются вправо, все остальные - влево. |
LIKE |
Копирует особенности форматирования указанного столбца, не заданные для текущего столбца явно. |
NEWLINE |
Вставляет перевод строки перед выдачей значения столбца аналогично FOLD_BEFORE. |
NEW_VALUE |
Задает переменную, в которой будет храниться значение столбца. Эту переменную можно использовать в команде TTITLE в качестве элемента верхнего колонтитула. Сам столбец необходимо при этом указать в команде BREAK с действием SKIP PAGE. |
NOPRINT PRINT |
Управляет выдачей столбца. Опция NOPRINT отключает выдачу столбца на экран и в отчет. Опция PRINT восстанавливает выдачу столбца. |
NULL |
Задает текст, выдаваемый утилитой SQL*Plus вместо пустых значений в столбце. По умолчанию используется пробел. |
OLD_VALUE |
Задает переменную, в которой будет храниться значение столбца. Эту переменную можно использовать в команде BTITLE в качестве элемента нижнего колонтитула. Сам столбец необходимо при этом указать в команде BREAK с действием SKIP PAGE. |
ON OFF |
Управляет применением особенностей (атрибутов) форматирования столбца. Значение OFF отключает применение особенностей форматирования, не отменяя их. Значение ON снова включает применение заданных особенностей форматирования. |
WRAPPED WORD_WRAPPED TRUNCATED |
Задает правила работы со значениями, превышающими ширину столбца. Допускается перенос на следующую строку по границе столбца, по границе слова или усечение по границе столбца. |
Таблица 6. Основные элементы формата опции FORMAT.
Элемент |
Пример |
Описание |
A<ширина> |
A20 |
Этот элемент формата позволяет изменить стандартную ширину столбца строкового типа и типа DATE. Если значение столбца не помещается в заданную <ширину>, оно усекается или переносится, в зависимости от соответствующих установок. |
9 |
9999 |
Представляет значащую цифру в числовом значении. Вместо начальных нулей выдаются пробелы. Нулевое значение представляется цифрой 0. |
0 |
0999 |
Выдает начальный нуль. |
$ |
$999 |
Выдает перед числовым значением символ доллара. |
L |
9999L |
Выдает символ локальной денежной единицы в данной позиции. |
. |
9999.99 |
Выдает разделитель целой и дробной части (десятичную запятую) в данной позиции |
, |
9,999 |
Выдает запятую (разделитель разрядов) в данной позиции. |
DATE |
DATE |
Выдает числовое значение (представляющее дату в Юлианском формате) как дату в формате MM/DD/YY. |
EEEE |
9.999EEEE |
Выдает значение в экспоненциальном формате (обязательно указывать ровно четыре E). |
Рассмотрим простой пример использования команды COLUMN для форматирования значений и заголовков столбцов:
SQL> col sal format 9,999.99
SQL> select sal, ename from emp;
SAL ENAME
--------- ----------
800.00 SMITH
1,600.00 ALLEN
1,250.00 WARD
2,975.00 JONES
1,250.00 MARTIN
2,850.00 BLAKE
2,450.00 CLARK
3,000.00 SCOTT
5,000.00 KING
1,500.00 TURNER
1,100.00 ADAMS
950.00 JAMES
3,000.00 FORD
1,300.00 MILLER
14 строк выбрано.
SQL> col sal clear
SQL> col ename heading "Зарплата|товарища"
SQL> a where deptno=30
1* select sal, ename from empwhere deptno=30
SQL> /
select sal, ename from empwhere deptno=30
*
ошибка в строке 1:
ORA-00933: неверное завершение SQL-предложения
SQL> c/where/ where/
1* select sal, ename from emp where deptno=30
SQL> /
Зарплата
SAL товарища
---------- ----------
1600 ALLEN
1250 WARD
1250 MARTIN
2850 BLAKE
1500 TURNER
950 JAMES
6 строк выбрано.
Команда COLUMN с единственным параметром - ссылкой на столбец, выдает все атрибуты форматирования указанного столбца. Команда COLUMN без параметров выдает все атрибуты форматирования для всех столбцов, для которых они явно устанавливались. Продолжая предыдущий пример:
SQL> col ename
COLUMN ename ON
HEADING 'Зарплата|товарища' headsep '|'