Определение постоянного не NULL-значения.
::=
::=
::=
::=
::=
::=
::=
::=
::=
::=
::=
::=
::=
::=
::=
::=
::=
::=
::=
::=
::=
::=
::=
::=
::=
::=
::=
<Символьный литерал>
задает последовательность символов, начинающуюся и заканчивающуюся апострофом (одинарной кавычкой). Длина символьного литерала не более 4000 знаков.
<Представление символа>
задает представление любого отображаемого символа, отличного от одинарной кавычки (' – апостроф).
Типом данных <символьного литерала>
является CHAR. <Символьный литерал>
имеет длину, равную числу содержащихся в нем символов.
select length('литерал'); |7 |
Каждая одинарная кавычка внутри <символьного литерала>
представляется как <одинарная кавычка>
(т.е. парой символов одинарных кавычек).
select 'Трубы 1,5 дюйма: (1,5'''')'; |Трубы 1,5 дюйма: (1,5'')|
<Символьный литерал>
допускает нулевую длину (т.е. полное отсутствие символов).
select length(''); |0 |
Представление <символьного литерала>
может совпадать с ключевым словом.
select 'table', 'create index'; |table |create index |
Типом данных <шестнадцатеричного байтового литерала>
является BYTE
.
<Байтовый литерал>
задает последовательность байт, представленных в виде шестнадцатеричных чисел. Длина <байтового литерала>
не более 8000 шестнадцатеричных цифр.
Шестнадцатеричная цифра представляет 4 бита.
Шестнадцатеричная цифра | Битовое представление |
---|---|
0 | 0000 |
1 | 0001 |
2 | 0010 |
3 | 0011 |
4 | 0100 |
5 | 0101 |
6 | 0110 |
7 | 0111 |
8 | 1000 |
9 | 1001 |
A | 1010 |
B | 1011 |
C | 1100 |
D | 1101 |
E | 1110 |
F | 1111 |
Буквенное представление цифр (A-F) задается буквами латинского алфавита на любом регистре (верхнем или нижнем).
select 0x3C, cast X'020000000000001A22124B2006000000' as byte(16); | 60| 02 00 00 00 00 00 00 1A 22 12 4B 20 06 00 00 00| hex('CFF0') – битовая маска '1100111111110000' 0x0A0D – символы «Перевод строки» (LF), «Возврат каретки» (CR) 0xB0B0B0B0 – представление графических ASCII-символов ░░░░
Если из контекста ясно, что литерал должен иметь тип NCHAR
или NCHAR VARYING
, то его значение автоматически преобразуется к этому типу.
<Шестнадцатеричный байтовый литерал>
имеет длину, равную числу содержащихся в нем байт.
select length(hex('00ffac0d')); |4 |
<Шестнадцатеричный байтовый литерал>
допускает нулевую длину (т.е. полное отсутствие байт).
select length(hex('')); |0 |
Каждый байт в <шестнадцатеричном байтовом литерале>
представляется строго двумя шестнадцатеричными цифрами.
Если количество шестнадцатеричных цифр в литерале нечетное, по умолчанию недостающая цифра считается равной 0.
select cast hex('F') as byte(1), hex('f2'); |F0|F2|
<Шестнадцатеричный числовой литерал>
задает допустимое целочисленное значение. Если количество шестнадцатеричных цифр в литерале нечетное, по умолчанию недостающая цифра считается равной 0.
select 0x45af3d; |4566845 |
Максимальная длина <шестнадцатеричного байтового литерала>
4000 байт.
При использовании <шестнадцатеричного байтового литерала>
в конструкции CAST
результат преобразования зависит от длины литерала:
если длина меньше или равна 8 байт, он преобразуется в тип данных integer (обратный порядок байт в байтовом представлении integer);
если длина больше 8 байт, он преобразуется в байтовую строку.
select cast 0xFFF0 as integer, cast 0xFFF0ac456745dd45abcd as varbyte(5); |65520 |FF0AC4567|
Типом данных <двоичного байтового литерала>
является BYTE
.
<Двоичный байтовый литерал>
задает последовательность байт, представленных в виде двоичных чисел. Длина <двоичного литерала>
не более 32000 двоичных цифр.
select b'11111111000000011000001'; |FF0182|
<Двоичный байтовый литерал>
имеет длину, равную числу содержащихся в нем байт.
select length(b'10010011'); |1|
<Двоичный байтовый литерал>
допускает нулевую длину (т.е. полное отсутствие байт).
select length(b''); |0 |
Каждый байт в <двоичном байтовом литерале>
представляется восемью двоичными цифрами. Если количество двоичных цифр в литерале не кратно 8, по умолчанию недостающие цифры считаются равными 0.
select b'1', b'10000000'; |80 |80|
<Двоичный числовой литерал>
задает допустимое целочисленное значение. Если количество двоичных цифр в литерале не кратно 8, по умолчанию недостающие цифры считаются равными 0.
select 0b0101111,cast 0b0101111 as byte(1); |94 |5e|
select -0b0101111, cast -0b0101111 as byte(1), cast (256-94) as byte(1); |-94 |a2|a2|
<Точный числовой литерал>
может иметь тип данных DECIMAL
(DEC
, NUMERIC
), BIGINT
, INTEGER
(INT
) или SMALLINT
.
<Точный числовой литерал>
типа BIGINT
, INTEGER
(INT
) или SMALLINT
задает число со знаком или без знака, максимум 19 цифр, которые не включают десятичную точку.
Тип данных целочисленного литерала определяется величиной.
Диапазон значения | Тип литерала |
---|---|
от -32 768 до +32 767 |
SMALLINT
|
от -2 147 483 648 до +2 147 483 647 |
ПримечаниеПри необходимости может быть сконвертирован в SMALLINT. Если не помещается в эти границы – рассматривается как BIGINT |
от -9 223 372 036 854 775 808 до +9 223 372 036 854 775 807 |
BIGINT
|
<Точный числовой литерал>
имеет точность, равную количеству цифр в его представлении. Масштаб <точного числового литерала>
определяется количеством цифр после реальной или подразумеваемой десятичной точки.
<Точный числовой литерал>
типа DECIMAL
задает знаковое или беззнаковое десятичное число с общим количеством цифр не более 30 и максимум 10 цифр после
возможной десятичной точки. Точность литерала – общее число цифр в его
представлении (включая лидирующие и завершающие нули). Масштаб – число цифр справа от десятичной точки (включая младшие нули).
<Точный числовой литерал>
может не содержать десятичную точку, которая подразумевается за последней цифрой. В этом случае литерал представляет целое значение.
select 5, 5., 5.0,0.5,.5; |5 |5.0 |5.0 |0.5 |0.5 |
<Приближенный числовой литерал>
всегда рассматривается как DOUBLE, хотя при
необходимости может быть сконвертирован в REAL.
Точность <приближенного числового литерала>
типа REAL
– 6 десятичных цифр,
точность <приближенного числового литерала>
типа DOUBLE
– 15 десятичных цифр.
<Приближенный числовой литерал>
задает вещественное десятичное число, представленное в виде мантиссы и характеристики (стандартное математическое представление). Первое число (мантисса) может включать знак и десятичную точку; второе число (характеристика) – только знак (без десятичной точки). Значением литерала является произведение характеристики и значения мантиссы в степени 10.
select -333111e-3,.555E+3; |-333.111 |555 |
<Дата-время литерал>
символьный литерал в одном из допустимых форматов <представления даты>. Для явного преобразования его в значение DATE необходимо использовать конструкцию cast, например:
cast '28.04.1950' as date.
Неявное преобразование <дата-время литералов>
к типу DATE выполняется при
вставке их значений в столбцы типа DATE или при сравнении их со значениями
типа DATE, например:
select $$$s13, rowtime from $$$sysrl where rowtime > '19.10.2011';
В <дата-время литерале>
DD представляет день месяца (число от 1 до 31), MM – номер месяца (число от 1 до 12), MON – первые три буквы названия месяца, [YY] – номер века, YY – год века, HH – количество часов (число от 0 до 24), MI – количество минут (число от 0 до 59), SS – количество секунд (число от 0 до 59), FF – количество тиков (число от 0 до 99).
'13-11-1992' '11/13/92:7:30' '27.3.2003:15:45'
'28-апр-50' '1875-01-12' '1-sep-2003:24:03:35:88'
В <дата-время литерале>
допускается задавать параметры одной цифрой.
select '8-5-39:2:5:'; |8-5-39:2:5: |
Если показания времени опущены, то дата считается введенной на момент времени 0 HH 0 MI 0 SS 0 FF (0 час. 0 мин. 0 сек. 0 тиков). Если не указаны цифры, обозначающие век, а YY<38, то считается XXI век Н.Э. (т.е. [YY]=20), иначе – XX век Н.Э. (т.е. [YY]=19).
select to_char('18-05-19','dd.mm.yyyy'), to_char('18-05-39','dd.mm.yyyy'); |18.05.2019 |18.05.1939 |
Следующие форматы <дата-время литерала>
являются форматами по умолчанию, т.е. распознаются автоматически:
DD.MM.[YY]YY[:[HH:[MI:[SS.[FF]]]];
MM/DD/[YY]YY[:[HH:[MI:[SS.[FF]]]];
DD-MON-[YY]YY[:[HH:[MI:[SS.[FF]]]];
YYYY-MM-DD[:[HH:[MI:[SS.[FF]]]].
create or replace table tab (d1 date default '25.01.2013:15:22:32.11'); create or replace table tab (d1 date default '01/25/2013:15:22:32.11'); create or replace table tab (d1 date default '25-AUG-2013:15:22:32.11'); create or replace table tab (d1 date default '2003-01-25:15:22:32.11');
<Логический литерал> можно задавать в одинарных кавычках: 'TRUE', 'true', 'FALSE', 'false' и т.п.
create or replace table tb (b boolean default 'TRUE'); insert into tb default values; insert into tb values ('true'); insert into tb values ('false'); select rowid, b from tb where b = 'True'; select rowid, b from tb where b = 'False';