FirebirdSQL logo

Литералы (константы)

Литерал или константа — это значение, подставляемое непосредственно в SQL оператор, которое не получено из выражения, параметра, ссылки на столбец или переменной.

Строковые литералы

Строковый литерал это последовательность символов, заключенных между парой апострофов (“одинарных кавычек”). Максимальная длина строковой константы составляет 65535 байт; максимальная количество символов будет определяться количеством байт, используемых для кодирования каждого символа.

Синтаксис:
<character string literal> ::=
  [ <introducer> <character set specification> ]
    <quote> [ <character representation>... ] <quote>
    [ { <separator> <quote> [ <character representation>... ] <quote> }... ]

<separator> ::=
  { <comment> | <white space> }

<introducer> ::= underscore (U+005F)

<quote> ::= apostrophe (U+0027)

<char> ::= character representation;
apostrophe is escaped by doubling
Example 1. Простой строковый литерал
'Hello world'

Если литерал апострофа требуется в строковой константе, то он может быть “экранирован” другим предшествующим апострофом.

Example 2. Строковый литерал содержащий апостроф
'Mother O''Reilly's home-made hooch'

Другой способ записать данный строковый литерал использовать альтернативные кавычки:

q'{Mother O'Reilly's home-made hooch}'

При необходимости строковый литерал может быть "прерван" пробелом или комментарием.Это может быть использовано для разбиения длинного литерала на несколько строк или предоставления встроенных комментариев.

Example 3. Строковые литералы прерванные пробелом и комментарием
-- whitespace between literal
select 'ab'
       'cd'
from RDB$DATABASE;
-- output: 'abcd'

-- comment and whitespace between literal
select 'ab' /* comment */ 'cd'
from RDB$DATABASE;
-- output: 'abcd'
Note
  • Двойные кавычки не должны (допускаются 1 диалектом) использоваться для квотирования строк. В SQL они предусмотрены для других целей.

  • Необходимо быть осторожным с длиной строки, если значение должно быть записано в столбец типа VARCHAR. Максимальная длина строки для типа VARCHAR составляет 32765 байт (32767 для типа CHAR). Если значение должно быть записано в столбец типа BLOB, то максимальная длина строкового литерала составляет 65535 байт.

Предполагается, что набор символов строковой константы совпадает с набором символов столбца предназначенного для её сохранения.