Функции и операторы для бинарных строк

9.5. Функции и операторы для бинарных строк

Данный раздел описывает функции и операторы для анализа и обработки значений типа bytea.

SQL определяет некоторые строковые функции, которые используют для отделения аргументов друг от друга ключевые слова, а не запятые. Подробности см. в Table 9-8. PostgreSQL также предоставляет версии этих функций, которые используют обычный синтаксис вызова функции (см. Table 9-9).

Note: Представленные результаты, показанные на данной странице означают, что параметр сервера bytea_output установлен в escape (традиционный формат для PostgreSQL).

Table 9-8. SQL Операторы и функции для работы с битовыми строками

ФункцияВозвращаемый типОписаниеПримерРезультат
string || string bytea Слияние строк (конкатенация) E'\\\\Post'::bytea || E'\\047gres\\000'::bytea\\Post'gres\000
octet_length(string) intКрличество байт в бинарной строкеoctet_length(E'jo\\000se'::bytea)5
overlay(string placing string from int [for int]) bytea Замена подстроки overlay(E'Th\\000omas'::bytea placing E'\\002\\003'::bytea from 2 for 3)T\\002\\003mas
position(substring in string) intМестоположение заданной подстрокиposition(E'\\000om'::bytea in E'Th\\000omas'::bytea)3
substring(string [from int] [for int]) bytea Извлечение подстроки substring(E'Th\\000omas'::bytea from 2 for 3)h\000o
trim([both] bytes from string) bytea Удалить наиболее длинную строку, содержащую только байты, перечисленные в bytes от начала и до конца string trim(E'\\000'::bytea from E'\\000Tom\\000'::bytea)Tom

В Table 9-9 перечисляются дополнительные функции для манипуляции бинарными строками. Некоторые их них используются для внутренних нужд, для реализации строковых функций по SQL стандарту, перечисленных в Table 9-8.

Table 9-9. Доугие функции для работы с бинарными строками

ФункцияВозвращаемый типОписаниеПримерРезультат
btrim(string bytea, bytes bytea) bytea Удалить наиболее длинную строку, содержащую только байты, перечисленные в bytes, от начала и до конца string btrim(E'\\000trim\\000'::bytea, E'\\000'::bytea)trim
decode(string text, type text) bytea Декодировать бианрную строку из string, которая была ранее закодирована функцией encode. Тип параметра такой же как и в encode. decode(E'123\\000456', 'escape')123\000456
encode(string bytea, type text) text Закодировать бинарную строку в ASCII представление. Поддерживают такие типы кодирования как: base64, hex, escape. encode(E'123\\000456'::bytea, 'escape')123\000456
get_bit(string, offset) int Извлечь бит из строки get_bit(E'Th\\000omas'::bytea, 45)1
get_byte(string, offset) int Извлечь байт из строки get_byte(E'Th\\000omas'::bytea, 4)109
length(string) int Длина бинарной строки length(E'jo\\000se'::bytea)5
md5(string) text Подсчитывает MD5 хэш строки string, возвращая результат в шестнадцетиричном виде md5(E'Th\\000omas'::bytea)8ab2d3c9689aaf18 b4958c334c82d8b1
set_bit(string, offset, newvalue) bytea Установить бит в строке set_bit(E'Th\\000omas'::bytea, 45, 0)Th\000omAs
set_byte(string, offset, newvalue) bytea Установить байт в строке set_byte(E'Th\\000omas'::bytea, 4, 64)Th\000o@as

В функциях get_byte и set_byte первый байт в бинарной строке имеет номер 0. В функциях get_bit и set_bit нумерация битов осуществляется для каждого байта справа; например бит 0 — это наименее значимый бит первого байта, а бит 15 наиболее значимый бит во втором байте.

Back to top

(С) Виктор Вислобоков, 2008-2023