本文介紹了PolarDB PostgreSQL版(相容Oracle)支援的二進位類型。
二進位字串可以儲存以下資料類型。
| 名稱 | 儲存大小 | 描述 |
| BINARY | 二進位字串的長度。 | 定長二進位字串,長度介於1和8300之間。 |
| BLOB | 實際二進位字串加1位元組(如果二進位字串小於127位元組)或4位元組(如果二進位字串大於等於127位元組)。 | 可變長度的二進位字串。 |
| VARBINARY | 二進位字串的長度。 | 可變長度的二進位字串,長度介於1和8300之間。 |
| BYTEA | 1或4位元組加上實際的二進位字串。 | 變長的二進位字串。 |
二進位串是一個8位位元組(或位元組的序列)。與字串相比,二進位串有兩點不同:
- 二進位串允許存放值為0的8位位元組和其他無法列印顯示的八位位元組(定義的範圍超過32~126)。
- 在二進位串上進行的操作實際是處理位元組,與之相反的是對字串的編碼和處理取決於本地設定。
BYTEA類型
BYTEA類型支援兩種輸入輸出的外部格式:
hex格式和PostgreSQL的歷史escape格式。hex格式將位元據編碼為每位元組2位十六進位數字, 最重要的四位(半位元組)放在開始。整條字串以\x開始 (與轉義格式相區別)。escape格式是一種傳統的PostgreSQL格式。它採用以ASCII字元序列來表示二進位串的方法,同時將那些無法表示成ASCII字元的二進位串轉換成特殊的逸出序列。從應用的角度看,如果代表位元組的字元有意義,則這種表示方法會很方便。但實際上,這樣做會模糊二進位字串和字元字串之間的區別,從而造成困擾, 同時篩選出的轉義機制會顯得很臃腫。因此對一些新應用應該恰當的避免這種格式。