9.5. 이진 토토 함수 및 연산자#

이 섹션에서는 바이너리 토토, 즉 유형의 값을 검사하고 조작하기 위한 함수와 연산자를 설명합니다.바이테아. 이들 중 다수는 목적과 구문 면에서 이전 섹션에 설명된 텍스트 토토 함수와 동일합니다.

SQL인수를 구분하기 위해 쉼표 대신 키워드를 사용하는 일부 토토 함수를 정의합니다. 자세한 내용은 다음을 참조하세요.표 9.11. PostgreSQL또한 일반 함수 호출 구문을 사용하는 이러한 함수 버전을 제공합니다(참조표 9.12).

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

함수/연산자

설명

바이테아 || 바이테아바이테아

두 개의 바이너리 토토을 연결합니다.

'\x123456'::bytea || '\x789a00bcde'::바이트아\x123456789a00bcde

bit_length ( 바이테아 ) → 정수

이진 토토의 비트 수를 반환합니다(8배옥텟_길이).

bit_length('\x123456'::bytea)24

btrim ( 바이트 바이테아, 바이트가 제거됨 바이테아 ) → 바이테아

다음에 나타나는 바이트만 포함하는 가장 긴 토토을 제거합니다.바이트가 제거됨시작과 끝에서바이트.

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

ltrim ( 바이트 바이테아, 바이트가 제거됨 바이테아 ) → 바이테아

다음에 나타나는 바이트만 포함하는 가장 긴 토토을 제거합니다.바이트가 제거됨시작부터바이트.

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

옥텟_길이 ( 바이테아 ) → 정수

바이너리 토토의 바이트 수를 반환합니다.

octet_length('\x123456'::bytea)3

오버레이 ( 바이트 바이테아 배치 중 newsubstring 바이테아 발신 시작 정수 [ for 개수 정수 ] ) → 바이테아

다음의 하위 토토을 대체합니다.바이트다음에서 시작하는시작'번째 바이트 및 확장개수바이트newsubstring. 만일개수생략되었으며, 기본값은newsubstring.

overlay('\x1234567890'::bytea '\002\003'::bytea를 2에서 3으로 배치)\x12020390

위치 ( 하위 토토 바이테아 IN 바이트 바이테아 ) → 정수

지정된 첫 번째 시작 색인을 반환합니다.하위 토토내부바이트또는 존재하지 않는 경우 0입니다.

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

rtrim ( 바이트 바이테아, 바이트가 제거됨 바이테아 ) → 바이테아

다음에 나타나는 바이트만 포함하는 가장 긴 토토을 제거합니다.바이트가 제거됨끝부터바이트.

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

하위 토토 ( 바이트 바이테아 [ 발신 시작 정수 ] [ for 개수 정수 ] ) → 바이테아

다음의 하위 토토 추출바이트다음에서 시작시작'번째 바이트가 지정된 경우 그 이후에 중지개수20075_20130시작개수.

하위 토토('\x1234567890'::bytea 3 for 2)\x5678

트림 ( [ 주요 | 후행 | 둘 다 ] 바이트가 제거됨 바이테아 발신 바이트 바이테아 ) → 바이테아

다음에 나타나는 바이트만 포함하는 가장 긴 토토을 제거합니다.바이트가 제거됨시작, 끝 또는 양쪽 끝에서 (둘 다기본값) of바이트.

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

트림 ( [ 주요 | 후행 | 둘 다 ] [ 발신 ] 바이트 바이테아, 바이트가 제거됨 바이테아 ) → 바이테아

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

트림(둘 다 '\x1234567890'::bytea, '\x9012'::bytea)\x345678


추가 바이너리 토토 조작 기능을 사용할 수 있으며 다음에 나열되어 있습니다.표 9.12. 그 중 일부는 내부적으로 다음을 구현하는 데 사용됩니다.SQL-다음에 나열된 표준 토토 함수표 9.11.

표 9.12. 기타 이진 토토 함수

기능

설명

예제

bit_count ( 바이트 바이테아 ) → 비긴트

이진 토토(또는이라고도 함)에 설정된 비트 수를 반환합니다.팝카운트).

bit_count('\x1234567890'::bytea)15

get_bit ( 바이트 바이테아, n 비긴트 ) → 정수

추출물n번째바이너리 토토의 비트.

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

get_byte ( 바이트 바이테아, n 정수 ) → 정수

추출물n번째바이너리 토토의 바이트.

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

길이 ( 바이테아 ) → 정수

바이너리 토토의 바이트 수를 반환합니다.

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

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

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

length('호세'::bytea, 'UTF8')4

md5 ( 바이테아 ) → 텍스트

MD5를 계산합니다해시2진수 토토의 결과는 16진수로 기록됩니다.

md5('목\000omas'::bytea)8ab2d3c9689aaf18​b4958c334c82d8b1

set_bit ( 바이트 바이테아, n 비긴트, 새값 정수 ) → 바이테아

세트n번째이진 토토의 비트새값.

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

set_byte ( 바이트 바이테아, n 정수, 새값 정수 ) → 바이테아

세트n번째바이너리 토토의 바이트새값.

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

샤224 ( 바이테아 ) → 바이테아

SHA-224를 계산합니다.해시바이너리 토토.

sha224('abc'::bytea)\x23097d223405d8228642a477bda2​55b32aadbce4bda0b3f7e36c9da7

sha256 ( 바이테아 ) → 바이테아

SHA-256을 계산합니다.해시바이너리 토토.

sha256('abc'::bytea)\xba7816bf8f01cfea414140de5dae2223​b00361a396177a9cb410ff61f20015ad

sha384 ( 바이테아 ) → 바이테아

SHA-384를 계산합니다.해시바이너리 토토.

sha384('abc'::bytea)\xcb00753f45a35e8bb5a03d699ac65007​272c32ab0eded1631a8b605a43ff5bed​8086072ba1e7cc2358baeca134c825a7

sha512 ( 바이테아 ) → 바이테아

SHA-512 계산해시바이너리 토토.

sha512('abc'::bytea)\xddaf35a193617abacc417349ae204131​12e6fa4e89a97ea20a9eeee64 b55d39a​2192992a274fc1a836ba3c23a3feebd​454d4423643ce80e2a9ac94fa54ca49f

substr ( 바이트 바이테아, 시작 정수 [, 개수 정수 ] ) → 바이테아

다음의 하위 토토을 추출합니다.바이트다음에서 시작시작'번째 바이트, 확장개수32975_33015하위 토토(바이트from시작for개수).)

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


기능get_byte그리고set_byte바이너리 토토의 첫 번째 바이트에 바이트 0으로 번호를 매깁니다. 함수get_bit그리고set_bit각 바이트 내에서 오른쪽부터 비트 수; 예를 들어 비트 0은 첫 번째 바이트의 최하위 비트이고 비트 15는 두 번째 바이트의 최상위 비트입니다.

역사적인 이유로 이 함수는md516진수로 인코딩된 유형의 값을 반환합니다.텍스트반면 SHA-2 함수는 유형을 반환합니다바이테아. 기능을 사용하세요인코딩그리고디코드둘 사이를 변환합니다. 예를 들면 다음과 같습니다.인코드(sha256('abc'), '16진수')16진수로 인코딩된 텍스트 표현을 얻으려면, 또는디코드(md5('abc'), '16진수')을 얻으려면바이테아값.

서로 다른 문자 집합(인코딩) 사이에서 토토을 변환하고 임의의 바이너리 데이터를 텍스트 형식으로 표현하는 기능은 다음과 같습니다.표 9.13. 이러한 함수의 경우 다음 유형의 인수 또는 결과입니다.텍스트은 데이터베이스의 기본 인코딩으로 표현되는 반면, 인수 또는 유형의 결과는바이테아다른 인수로 명명된 인코딩에 있습니다.

표 9.13. 텍스트/이진 토토 변환 함수

기능

설명

변환 ( 바이트 바이테아, src_encoding 이름, dest_encoding 이름 ) → 바이테아

인코딩에서 텍스트를 나타내는 바이너리 토토을 변환합니다.src_encoding인코딩의 바이너리 토토로dest_encoding(참조섹션 23.3.4사용 가능한 변환에 대해).

convert('text_in_utf8', 'UTF8', 'LATIN1')\x746578745f696e5f75746638

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

인코딩에서 텍스트를 나타내는 바이너리 토토을 변환합니다.src_encoding텍스트데이터베이스 인코딩에서(참조섹션 23.3.4사용 가능한 변환에 대해).

convert_from('text_in_utf8', 'UTF8')text_in_utf8

convert_to ( 토토 텍스트, dest_encoding 이름 ) → 바이테아

a를 변환합니다텍스트토토(데이터베이스 인코딩에서)을 인코딩에서 인코딩된 바이너리 토토로dest_encoding(참조섹션 23.3.4사용 가능한 변환에 대해).

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

인코딩 ( 바이트 바이테아, 형식 텍스트 ) → 텍스트

바이너리 데이터를 텍스트 표현으로 인코딩합니다. 지원됨형식값은 다음과 같습니다:base64, 탈출, 16진수.

인코드('123\000\001', 'base64')MTIzAAE=

디코드 ( 토토 텍스트, 형식 텍스트 ) → 바이테아

텍스트 표현에서 바이너리 데이터를 디코딩합니다. 지원됨형식값은 와 동일인코딩.

디코드('MTIzAAE=', 'base64')\x3132330001


인코딩그리고디코드함수는 다음 텍스트 형식을 지원합니다:

base64 #

base64형식은RFC 2045 섹션 6.8. 에 따라RFC, 인코딩된 줄은 76자에서 끊어집니다. 그러나 MIME CRLF 줄 끝 표시 대신 줄 끝 표시에는 개행 문자만 사용됩니다.디코드함수는 캐리지 리턴, 개행, 공백 및 탭 문자를 무시합니다. 그렇지 않으면 오류가 발생합니다.디코드잘못된 base64 데이터가 제공되었습니다(후행 패딩이 잘못된 경우 포함).

탈출 #

탈출format은 0바이트와 상위 비트가 설정된 바이트를 8진수 이스케이프 시퀀스로 변환합니다(\nnn), 백슬래시를 두 배로 늘립니다. 다른 바이트 값은 문자 그대로 표시됩니다.디코드백슬래시 뒤에 두 번째 백슬래시나 8진수 세 자리가 없으면 함수는 오류를 발생시킵니다. 변경되지 않은 다른 바이트 값을 허용합니다.

16진수 #

16진수형식은 데이터의 각 4비트를 하나의 16진수로 나타냅니다.0통해f, 각 바이트의 상위 숫자를 먼저 씁니다.인코딩함수는 다음을 출력합니다.a-f16진수는 소문자입니다. 데이터의 최소 단위가 8비트이므로 항상 짝수 개의 문자가 반환됩니다.인코딩.디코드함수는 다음을 허용합니다a-f대문자 또는 소문자. 다음과 같은 경우 오류가 발생합니다.디코드잘못된 16진수 데이터가 제공되었습니다(홀수 문자가 지정된 경우 포함).

집계 함수도 참조string_aggPostgresql: Tài liệu: 17: 9.21. Hàm tổ와이즈 토토 hợp그리고 다음의 대형 객체 기능사설 토토 사이트 : 문서 : 17 : 33.4. 사설 토토 사이트 측 기능.

수정사항 제출

문서에 올바르지 않은 내용이 있으면 일치하지 않습니다. 특정 기능에 대한 경험이 있거나 추가 설명이 필요한 경우 이용해주세요이 양식문서 문제를 보고합니다.