FirebirdSQL logo

CHAR_LENGTH(), CHARACTER_LENGTH()

Доступно в

DSQL, PSQL

Синтаксис
  CHAR_LENGTH (string)
| CHARACTER_LENGTH (string)
Table 1. Параметры функции CHAR_LENGTH
Параметр Описание

string

Выражение строкового типа.

Тип возвращаемого результата:

BIGINT

Функция CHAR_LENGTH возвращает длину (в символах) строки, переданной в качестве аргумента.

Note

С параметрами типа CHAR эта функция берет во внимание всю формальную строковую длину (например, объявленная длина поля или переменной). Если вы хотите получить “логическую” длину без учёта пробелов, то перед передачей аргумента в CHAR[ACTER]_LENGTH надо выполнить над ним операцию RIGHT TRIM.

HASH()

Доступно в

DSQL, PSQL

Синтаксис
HASH (str [USING <algorithm>])

<algorithm> ::= { CRC32 }
Table 1. Параметры функции HASH
Параметр Описание

str

Выражение строкового типа.

Тип возвращаемого результата:

BIGINT

Функция HASH возвращает некриптографический хэш входной строки.Эта функция полностью поддерживает текстовые BLOB любой длины и с любым набором символов.

Необязательное предложение USING определяет применяемый некриптографический алгоритм хеширования.Когда предложение USING отсутствует, применяется устаревший алгоритм PJW; это идентично его поведению в предыдущихверсиях Firebird.

Поддерживаемые алгоритмы:
не указан

Если алгоритм не указан, то используется 64-битный вариант некриптографическойхэш-функции PJW (также известной как ELF64).Эта функция очень быстра и может использоваться для общих целей (хеш-таблицы и т.д.), но имеет большое количество коллизий.Для более надежного хеширования следует использовать другие хеш-функции, явно указанные в предложении USING, или криптографические хеши с помощью [fblangref-scalarfuncs-crypthash].

Для этого алгоритма хеширования функция возвращает тип BIGINT.

CRC32

Если в предложении USING указан алгоритм CRC32, то Firebird применяет алгоритм CRC32, используя полином 0x04C11DB7.

Для этого алгоритма функция HASH возвращает результат с типом INTEGER.