9.5. 이진 문자열 함수 및 연산자

이 섹션은 이진 문자열을 검사하고 조작하기위한 함수 및 연산자를 설명합니다.BYTEA. 이들 중 다수는 목적과 구문에서 이전 섹션에 설명 된 텍스트 문자열 함수와 동일합니다.

SQL쉼표가 아닌 핵심 단어를 사용하여 인수를 분리하는 일부 문자열 함수를 정의합니다. 세부 사항은표 9.11. PostgreSQL일반 함수 호출 구문을 사용하는 이러한 기능의 버전을 제공합니다 (참조표 9.12).

표 9.11. SQL이진 문자열 함수 및 연산자

기능/연산자

설명

예제

BYTEA || BYTEABYTEA

두 이진 문자열을 연결합니다.

'\ x123456':: bytea || '\ x789a00bcde':: bytea\ x123456789A00BCDE

bit_le메이저 토토 사이트th(BYTEA) →Integer

이진 문자열에서 비트 수를 반환합니다 (8 배Octet_le메이저 토토 사이트th).

bit_le메이저 토토 사이트th ( '\ x123456':: bytea)24

Octet_le메이저 토토 사이트th(BYTEA) →정수

이진 문자열에서 바이트 수를 반환합니다.

Octet_le메이저 토토 사이트th ( '\ x123456':: bytea)3

오버레이(바이트 BYTEA 배치 NewsUbstri메이저 토토 사이트 BYTEA From 시작 Integer[for count Integer]) →BYTEA

|바이트에서 시작하는시작'TH 바이트 및 확장count바이트NewsUbstri메이저 토토 사이트. 만약에count생략되면의 길이로 기본값NewsUbstri메이저 토토 사이트.

오버레이 ( '\ x1234567890':: 바이트 배치 '\ 002 \ 003':: bytea from 2 for 3)\ x12020390

위치(Substri메이저 토토 사이트 BYTEA in 바이트 BYTEA) →정수

지정된 첫 번째 시작 색인을 반환Substri메이저 토토 사이트바이트또는 존재하지 않으면 0.

위치 ( '\ x5678':: bytea in '\ x1234567890':: bytea)3

Substri메이저 토토 사이트(바이트 BYTEA[From 시작 정수] [for count Integer]) →BYTEA

|의 기판 추출바이트시작시작count바이트가 지정된 경우. 중 하나 이상 제공시작andcount.

Substri메이저 토토 사이트 ( '\ x1234567890':: Bytea from 3 for 2)\ x5678

trim([주요 | 후행 | 둘 다]BYTESREMOVED BYTEA From 바이트 BYTEA) →BYTEA

BYTESREMOVED시작, 끝 또는 양쪽 끝에서 (둘 다기본값)의바이트.

trim ( '\ x9012':: bytea from '\ x1234567890':: bytea)\ x345678

트림([Leading | 후행 | 둘 다] [From]바이트 BYTEA, BYTESREMOVED BYTEA) →BYTEA

이것은 비표준 구문입니다.trim ().

Trim ( '\ x1234567890':: bytea, '\ x9012':: bytea)\ x345678


추가 바이너리 스트링 조작 함수를 사용할 수 있으며에 나열되어 있습니다.표 9.12. 그들 중 일부는 내부적으로 사용되어SQL-주차 문자열 함수에 나열표 9.11.

표 9.12. 기타 이진 문자열 함수

기능

설명

예제

bit_count(바이트 BYTEA) →bigint

이진 문자열에 설정된 비트 수를 반환합니다 (또한PopCount).

bit_count ( '\ x1234567890':: bytea)15

btrim(바이트 BYTEA, BYTESREMOVED BYTEA) →BYTEA

BYTESREMOVED시작과 끝에서바이트.

btrim ( '\ x1234567890':: bytea, '\ x9012':: bytea)\ x345678

get_bit(바이트 BYTEA, n bigint) →Integer

추출물n'th이진 문자열에서 비트.

get_bit ( '\ x1234567890':: Bytea, 30)1

get_byte(바이트 BYTEA, n Integer) →정수

추출물n'th바이너리 문자열에서 바이트.

get_byte ( '\ x1234567890':: Bytea, 4)144

길이(BYTEA) →정수

이진 문자열의 바이트 수를 반환합니다.

길이 ( '\ x1234567890':: bytea)5

길이(바이트 BYTEA, 인코딩 이름) →정수

주어진 텍스트라고 가정하면 이진 문자열의 문자 수를 반환합니다인코딩.

길이 ( 'Jose':: Bytea, 'utf8')4

ltrim(바이트 BYTEA, BYTESREMOVED BYTEA) →BYTEA

BYTESREMOVED시작부터바이트.

ltrim ( '\ x1234567890':: bytea, '\ x9012':: bytea)\ x34567890

MD5(BYTEA) →텍스트

MD5 계산HASH이진 문자열의 결과는 16 진수로 기록됩니다.

md5 ( 'th \ 000omas':: bytea)8AB2D3C9689AAF18 B4958C334C82D8B1

rtrim(바이트 BYTEA, BYTESREMOVED BYTEA) →BYTEA

BYTESREMOVED끝까지바이트.

rtrim ( '\ x1234567890':: bytea, '\ x9012':: bytea)\ x12345678

set_bit(바이트 BYTEA, n bigint, NewValue Integer) →BYTEA

세트n'th이진 문자열에서 비트NewValue.

set_bit ( '\ x1234567890':: Bytea, 30, 0)\ x1234563890

set_byte(바이트 BYTEA, n 정수, NewValue Integer) →BYTEA

세트n'th바이너리 문자열의 바이트NewValue.

set_byte ( '\ x1234567890':: Bytea, 4, 64)\ x1234567840

SHA224(BYTEA) →BYTEA

SHA-224 계산Hash이진 문자열의.

SHA224 ( 'ABC':: BYTEA)\ x23097D2223405D8228642A477BDA2 55B32AADBCE4BDA0B3F7E36C9DA7

SHA256(BYTEA) →BYTEA

SHA-256을 계산합니다HASH이진 문자열의.

SHA256 ( 'ABC':: BYTEA)\ XBA7816BF8F01CFEA414140DE5DAE2223 B00361A396177A9CB410FF61F20015AD

SHA384(BYTEA) →BYTEA

SHA-384 계산Hash이진 문자열의.

SHA384 ( 'ABC':: BYTEA)\ xcb00753f45A35E8BB5A03D699AC65007 272C32AB0EDED1631A8B605A43FF5BED 8086072BA1E7C2358BAECA134C825A7

SHA512(BYTEA) →BYTEA

SHA-512 계산HASH이진 문자열의.

SHA512 ( 'ABC':: BYTEA)\ XDDAF35A193617ABACC417349AE204131 12E6FA4E89A97EA20A9EEEE64 B55D39A 2192992A274FC1A836BA3C23A3FEEBBD 454D4423643CE80E2A9AC94FA5449F

서브 스트(바이트 BYTEA, 시작 정수[, count Integer]) →BYTEA

|의 기판 추출바이트시작시작'TH 바이트 및 확장count바이트가 지정된 경우. (동일substring (바이트From시작forcount).)

substr ( '\ x1234567890':: Bytea, 3, 2)\ x5678


기능get_byteandset_byte바이트 0으로 바이너리 스트링의 첫 바이트를 숫자. 함수get_bitandset_bit각 바이트 내 오른쪽에서 숫자 비트; 예를 들어 비트 0은 첫 번째 바이트 중 가장 중요한 비트이고 비트 15는 두 번째 바이트 중 가장 중요한 비트입니다.

역사적 이유로 기능MD5유형의 16 진수 인코딩 값을 반환텍스트SHA-2 기능 반환 유형BYTEA. 함수 사용Encodeanddecode둘 사이를 변환합니다. 예를 들어 쓰기Encode (SHA256 ( 'ABC'), 'hex')육각형 텍스트 표현을 얻으려면Decode (MD5 ( 'ABC'), 'hex')aBYTEA값.

다른 문자 세트 (인코딩) 사이에서 문자열을 변환하고 텍스트 형식으로 임의의 이진 데이터를 나타내는 기능표 9.13. 이러한 기능의 경우 유형의 인수 또는 결과텍스트데이터베이스의 기본 인코딩에 표현되며 인수 또는 유형의 결과BYTEA다른 인수에 의해 명명 된 인코딩에 있습니다.

표 9.13. 텍스트/이진 문자열 변환 함수

기능

설명

예제

convert(바이트 BYTEA, src_encoding 이름, dest_encoding 이름) →BYTEA

인코딩에서 텍스트를 나타내는 이진 문자열을 변환src_encoding인코딩의 이진 문자열dest_encoding(참조섹션 24.3.4사용 가능한 전환).

convert ( 'text_in_utf8', 'utf8', 'latin1')\ x746578745F696E5F75746638

convert_from(바이트 BYTEA, src_encoding 이름) →텍스트

인코딩에서 텍스트를 나타내는 이진 문자열 변환src_encodingto텍스트데이터베이스 인코딩에서 (참조섹션 24.3.4사용 가능한 전환).

convert_from ( 'text_in_utf8', 'utf8')text_in_utf8

convert_to(String 텍스트, dest_encoding 이름) →BYTEA

변환텍스트인코딩에 인코딩 된 이진 문자열에 대한 문자열 (데이터베이스 인코딩)dest_encoding(참조섹션 24.3.4사용 가능한 전환).

convert_to ( 'some_text', 'utf8')\ x736f6d655f74657874

Encode(바이트 BYTEA, 형식 텍스트) →텍스트

이진 데이터를 텍스트 표현으로 인코딩합니다. 지원형식값은 다음과 같습니다.Base64, 탈출, hex.

Encode ( '123 \ 000 \ 001', 'Base64')mtizaae =

decode(String 텍스트, 형식 텍스트) →BYTEA

텍스트 표현에서 이진 데이터를 디코딩합니다. 지원형식값은와 동일합니다Encode.

decode ( 'mtizaae =', 'base64')\ x3132330001


theEncodedecode함수는 다음 텍스트 형식을 지원합니다.

Base64

theBase64형식은입니다.RFC 2045 섹션 6.8. 에 따라RFC, 인코딩 된 라인은 76 자로 고장납니다. 그러나 MIME CRLF 엔드 라인 마커 대신 최종 라인 만 사용됩니다. 그만큼decode함수는 캐리지 퇴행, Newline, Space 및 Tab 문자를 무시합니다. 그렇지 않으면 오류가 발생합니다.decode끊임없는 Base64 데이터 - 후행 패딩이 잘못되었을 때를 포함하여

탈출

the탈출형식은 높은 비트가 Octal Escape Sequences로 설정된 0 바이트 및 바이트를 변환합니다 (\NNN), 백 슬래시를 두 배로 늘립니다. 다른 바이트 값은 문자 그대로 표시됩니다. 그만큼decodeBackslash가 두 번째 백 슬래시 또는 3 개의 옥탈 숫자가 뒤 따르지 않으면 함수가 오류가 발생합니다. 다른 바이트 값을 변경하지 않습니다.

hex

thehex형식은 각 4 비트의 데이터를 하나의 16 진수 숫자로 나타냅니다.0throughF, 각 바이트의 고차 숫자를 먼저 씁니다. 그만큼Encode함수 출력a-f하위 케이스의 16 진수. 가장 작은 데이터 단위는 8 비트이기 때문에 항상 수많은 문자가 있습니다.Encode. 그만큼decode함수는를 수락합니다a-F어퍼 케이스 또는 소문자의 문자. 에 오류가 발생합니다.decode홀수 문자가 주어질 때를 포함하여 유효하지 않은 16 진수 데이터가 제공됩니다.

집계 함수 참조String_agginPostgreSQL : 문서 : 14 : 9.21. 토토 꽁 머니 기능큰 객체 기능와이즈 토토 : 문서 : 14 : 35.4. 서버 측 기능.

정정 제출

올바른 문서에 아무것도 표시되면 일치하지 않습니다. 특정 기능에 대한 귀하의 경험 또는 추가 설명이 필요합니다. 사용이 양식문서 문제를보고하려면