Phiên bản được hỗ trợ:hiện tại(17)16 / 15 / 14 / 13
Phiên bản phát triển:18 / Devel
Phiên bản không được hỗ trợ:12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2 / 8.1 / 8.0 / 7.4 / 7.3 / 7.2

9.5. Chức năng kèo bóng đá c1 và toán tử#

Phần này mô tả các chức năng và toán tử để kiểm tra và thao tác các kèo bóng đá c1, đó là các giá trị của loạibytea. Nhiều trong số này là tương đương, về mục đích và cú pháp, với các hàm kèo bóng đá c1 văn bản được mô tả trong phần trước.

SQLXác định một số hàm kèo bóng đá c1 sử dụng các từ khóa, thay vì dấu phẩy, để phân tách các đối số. Chi tiết trongBảng 9.11. PostgreSQLCũng cung cấp các phiên bản của các chức kèo bóng đá c1 này sử dụng cú pháp gọi chức kèo bóng đá c1 thông thường (xemBảng 9.12).

Bảng 9.11.SQL​​Chức năng kèo bóng đá c1 và toán tử

Hàm/kèo bóng đá c1 tử

Mô tả

Ví dụ

bytea || byteabytea

nối hai kèo bóng đá c1.

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

bit_length(bytea) →Số nguyên

Trả về số bit trong kèo bóng đá c1 (8 lầnoctet_length).

bit_length ('\ x123456' :: bytea)24

Btrim(byte bytea, bytesremove bytea) →bytea

Xóa kèo bóng đá c1 dài nhất chỉ chứa byte xuất hiện trongbytesremoveTừ đầu và cuối củabyte.

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

LTRIM(byte bytea, bytesremove bytea) →bytea

Xóa kèo bóng đá c1 dài nhất chỉ chứa byte xuất hiện trongbytesremoveTừ đầubyte.

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

octet_length(bytea) →Số nguyên

Trả về số byte trong kèo bóng đá c1.

octet_length ('\ x123456' :: bytea)3

Lớp phủ(byte bytea Đặt NewsubString bytea từ Bắt đầu Số nguyên[cho Đếm Số nguyên]) →bytea

Thay thế kèo bóng đá c1 con củabytebắt đầu từBắt đầu'th byte và mở rộng choĐếmbyte vớiNewsubString. Nếu nhưĐếmbị bỏ qua, nó mặc định theo chiều dàiNewsubString.

lớp phủ ('\ x1234567890' :: bytea đặt '\ 002 \ 003' :: bytea từ 2 cho 3)\ x12020390

vị trí(Subring bytea in byte bytea) →Số nguyên

Trả về chỉ mục bắt đầu đầu tiên của được chỉ địnhSubringtrongbytehoặc không nếu nó không có mặt.

vị trí ('\ x5678' :: bytea trong '\ x1234567890' :: bytea)3

rtrim(byte bytea, bytesremove bytea) →bytea

Xóa kèo bóng đá c1 dài nhất chỉ chứa byte xuất hiện trongbytesremoveTừ cuốibyte.

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

Subring(byte bytea[từ Bắt đầu Số nguyên] [cho Đếm Số nguyên]) →bytea

trích xuất kèo bóng đá c1 con củabyteBắt đầu từBắt đầu'th byte nếu điều đó được chỉ định và dừng sauĐếmByte nếu được chỉ định. Cung cấp ít nhất một trong sốBắt đầuĐếm.

Subring ('\ x1234567890' :: bytea từ 3 cho 2)\ x5678

Trim([Dẫn đầu | Trailing | cả hai]bytesremove bytea từ byte bytea) →bytea

Xóa kèo bóng đá c1 dài nhất chỉ chứa byte xuất hiện trongbytesremoveTừ đầu, kết thúc hoặc cả hai đầu (cảlà mặc định) củabyte.

Trim ('\ x9012' :: bytea từ '\ x1234567890' :: bytea)\ x345678

Trim([Dẫn đầu | Trailing | cả] [từ]byte bytea, bytesremove bytea) →bytea

Đây là cú pháp không chuẩn choTrim ().

Trim (cả hai từ '\ x1234567890' :: bytea, '\ x9012' :: bytea)\ x345678


Các chức năng thao tác kèo bóng đá c1 bổ sung có sẵn và được liệt kê trongBảng 9.12. Một số trong số chúng được sử dụng nội bộ để thực hiệnSQL-Standard Chức năng kèo bóng đá c1 được liệt kê trongBảng 9.11.

Bảng 9.12. Các chức năng kèo bóng đá c1 khác

function

Mô tả

Ví dụ (s)

bit_count(byte bytea) →Bigint

Trả về số lượng bit được đặt trong kèo bóng đá c1 (còn được gọi làHồiPopCountHàng).

bit_count ('\ x1234567890' :: bytea)15

get_bit(byte bytea, n Bigint) →Số nguyên

Trích xuấtn'thbit từ kèo bóng đá c1.

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

get_byte(byte bytea, n Số nguyên) →Số nguyên

Trích xuấtn'thbyte từ kèo bóng đá c1.

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

length(bytea) →Số nguyên

Trả về số byte trong kèo bóng đá c1.

length ('\ x1234567890' :: bytea)5

LEGN(byte bytea, mã hóa tên) →Số nguyên

Trả về số lượng ký tự trong kèo bóng đá c1, giả sử đó là văn bản trong đã chomã hóa.

length ('jose' :: bytea, 'utf8')4

MD5(bytea) →Text

Tính kèo bóng đá c1 MD5Hashcủa kèo bóng đá c1, với kết quả được viết bằng thập lục phân.

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

set_bit(byte bytea, n Bigint, NewValue Số nguyên) →bytea

SETSn'thbit trong kèo bóng đá c1 đếnNewValue.

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

SET_BYTE(byte bytea, n Số nguyên, NewValue Số nguyên) →bytea

SETSn'thbyte trong kèo bóng đá c1 thànhNewValue.

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

SHA224(bytea) →bytea

Tính kèo bóng đá c1 SHA-224Hashcủa kèo bóng đá c1.

SHA224 ('ABC' :: bytea)

SHA256(bytea) →bytea

Tính kèo bóng đá c1 SHA-256Hashcủa kèo bóng đá c1.

SHA256 ('ABC' :: bytea)

SHA384(bytea) →bytea

Tính kèo bóng đá c1 SHA-384Hashcủa kèo bóng đá c1.

SHA384 ('ABC' :: bytea)

SHA512(bytea) →bytea

Tính kèo bóng đá c1 SHA-512Hashcủa kèo bóng đá c1.

SHA512 ('ABC' :: bytea)\ xDDAF35A193617ABACC417349AE204131 12E6FA4E89A97EA B55D39A 2192992A274FC1A836BA3C23A3FEEBBD 454D4423643CE80E2A9AC94FA54CA49F

kèo bóng đá c1 con(byte bytea, Bắt đầu Số nguyên[, Đếm Số nguyên]) →bytea

trích xuất kèo bóng đá c1 con củabyteBắt đầu tạiBắt đầu'th byte và mở rộng choĐếmByte nếu được chỉ định. (Giống nhưSubring (bytetừBắt đầuchoĐếm).)

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


Chức kèo bóng đá c1get_byteset_byteSố byte đầu tiên của kèo bóng đá c1 là byte 0. Hàmget_bitset_bitSố bit từ bên phải trong mỗi byte; Ví dụ: bit 0 là bit ít có ý nghĩa nhất của byte đầu tiên và bit 15 là bit quan trọng nhất của byte thứ hai.

Vì lý do lịch sử, chức kèo bóng đá c1MD5Trả về giá trị được mã hóa hex của loạiTexttrong khi các hàm SHA-2 trả về loạibytea. Sử dụng các chức kèo bóng đá c1mã hóagiải mãĐể chuyển đổi giữa hai. Ví dụ: Viếtmã hóa (sha256 ('abc'), 'hex')Để có được biểu diễn văn bản được mã hóa hex hoặcDecode (md5 ('abc'), 'hex')để nhậnbyteagiá trị.

Các hàm chuyển đổi kèo bóng đá c1 giữa các bộ ký tự khác nhau (mã hóa) và để biểu diễn dữ liệu nhị phân tùy ý ở dạng văn bản, được hiển thị trongBảng 9.13. Đối với các chức kèo bóng đá c1 này, một đối số hoặc kết quả của loạiTextđược thể hiện trong mã hóa mặc định của cơ sở dữ liệu, trong khi các đối số hoặc kết quả của loạibyteađang ở trong một mã hóa được đặt tên bởi một đối số khác.

Bảng 9.13. Chức năng chuyển đổi kèo bóng đá c1 văn bản/nhị phân

function

Mô tả

Ví dụ (s)

Chuyển đổi(byte bytea, src_encoding tên, Dest_encoding tên) →bytea

Chuyển đổi một kèo bóng đá c1 đại diện cho văn bản trong mã hóasrc_encodingđến kèo bóng đá c1 trong mã hóaDest_encoding(xemPhần 23.3.4để chuyển đổi có sẵn).

Chuyển đổi ('text_in_utf8', 'utf8', 'latin1')\ x746578745F696E5F75746638

convert_from(byte bytea, src_encoding tên) →Text

Chuyển đổi một kèo bóng đá c1 đại diện cho văn bản trong mã hóasrc_encodingđếnTextTrong mã hóa cơ sở dữ liệu (xemPhần 23.3.4để chuyển đổi có sẵn).

Convert_from ('text_in_utf8', 'utf8')text_in_utf8

Convert_TO(kèo bóng đá c1 Text, Dest_encoding tên) →bytea

Chuyển đổi ATextChuỗi (trong mã hóa cơ sở dữ liệu) thành một kèo bóng đá c1 được mã hóa trong mã hóaDest_encoding(xemPhần 23.3.4để chuyển đổi có sẵn).

Convert_TO ('SOME_TEXT', 'UTF8')\ x736f6d655f74657874

mã hóa(byte bytea, Định dạng Text) →Text

Mã hóa dữ liệu nhị kèo bóng đá c1 thành một biểu diễn văn bản; được hỗ trợĐịnh dạngGiá trị là:base64, Escape, Hex.

mã hóa ('123 \ 000 \ 001', 'base64')mtizaae =

giải mã(kèo bóng đá c1 Text, Định dạng Text) →bytea

Giải mã dữ liệu nhị kèo bóng đá c1 từ biểu diễn văn bản; được hỗ trợĐịnh dạngGiá trị giống như đối vớimã hóa.

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


Themã hóagiải mãCác chức kèo bóng đá c1 hỗ trợ các định dạng văn bản sau:

base64 #

Thebase64Định dạng là củaRFC 2045 Phần 6.8. TheoRFC, Các dòng được mã hóa bị phá vỡ ở 76 ký tự. Tuy nhiên, thay vì điểm đánh dấu cuối dòng MIME CRLF, chỉ có một dòng mới được sử dụng cho cuối dòng.giải mãChức kèo bóng đá c1 bỏ qua các ký tự chuyển đổi, Newline, Space và Tab. Nếu không, một lỗi được nêu ra khigiải mãđược cung cấp dữ liệu Base64 không hợp lệ - bao gồm khi đệm theo dõi không chính xác.

Escape #

TheEscapeĐịnh dạng chuyển đổi 0 byte và byte với bit cao được đặt thành kèo bóng đá c1 thoát hiểm (\nnn), và nó tăng gấp đôi dấu gạch chéo ngược. Các giá trị byte khác được thể hiện theo nghĩa đen.giải mãHàm sẽ gây ra lỗi nếu dấu gạch chéo ngược không được theo sau bởi dấu gạch chéo ngược thứ hai hoặc ba chữ số bát kèo bóng đá c1; nó chấp nhận các giá trị byte khác không thay đổi.

Hex #

TheHexĐịnh dạng đại diện cho mỗi 4 bit dữ liệu dưới dạng một chữ số thập lục kèo bóng đá c1,0đếnf, viết chữ số bậc cao của mỗi byte trước. Themã hóachức kèo bóng đá c1 xuất raA-fCác chữ số hex trong chữ thường. Bởi vì đơn vị dữ liệu nhỏ nhất là 8 bit, luôn có số lượng ký tự chẵn được trả về bởimã hóa. Thegiải mãHàm chấp nhậnA-fCác ký tự trong trường hợp trên hoặc chữ thường. Một lỗi được nêu ra khigiải mãđược cung cấp dữ liệu hex không hợp lệ - bao gồm khi được cho một số ký tự lẻ.

Xem thêm hàm tổng hợpString_agginPhần 9,21và các hàm đối tượng lớn trongPhần 33.4.

Gửi hiệu chỉnh

Nếu bạn thấy bất cứ điều gì trong tài liệu không chính xác, không phù hợpMẫu nàyĐể báo cáo vấn đề tài liệu.