SQL Plus: Создание и выполнение сценариев - Команда COLUMN
ОГЛАВЛЕНИЕ
Страница 7 из 29
Команда 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 | Управляет выдачей столбца. Опция 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 '/'