全部產品
Search
文件中心

PolarDB:字元型

更新時間:Jul 06, 2024

本文介紹了PolarDB PostgreSQL版(相容Oracle)支援的常用字元類型。

下表列出常用的字元類型。

名稱描述
CHAR[(n)]固定長度的字串,如果長度不足n,用空格填充至長度為n。
CLOB大型可變長度字串,最大為1 GB。
LONG可變長度字串,長度無限制。
NVARCHAR(n)可變長度的字串,長度有限制。
NVARCHAR2(n)可變長度的字串,長度有限制。
STRINGVARCHAR2的別名。
VARCHAR(n)可變長度字串,長度有限制(不推薦使用,但出於相容性考慮,支援該類型)。
VARCHAR2(n)可變長度字串,長度有限制。
TEXT長字串,最大長度為1 GB。
說明 上述表格中,其中n是一個正整數,且這些類型能夠儲存長度達到字元n的字串。如果嘗試儲存超過字元n長度的值,將產生錯誤。除非超出長度的字元都是空格,這種情況下將會把字串按照最大長度截斷。

CHAR

對於類型CHAR來說,如果不指定n的值,n就會預設為1。 如果要儲存的字串長度小於n,那麼類型CHAR的值將會用空格補齊,並且按照這種形式來儲存並顯示。

附加空格在語義上是不重要的。也就是說,當比較兩個類型CHAR值的時候,對於尾部的空格是忽略不計的。而且,當把類型CHAR的值轉換成另外一種字串類型的時候將會刪除這些空格。

如果您要明確地將超出長度的值轉換為類型CHAR(N)的長度,那麼超出長度的值將被截斷到字串N的長度,而不產生錯誤(如在SQL標準中指定的一樣)。

VARCHAR、VARCHAR2、NVARCHAR和NVARCHAR2

如果要賦值的字串長度小於n,那麼VARCHAR、VARCHAR2、NVARCHAR和NVARCHAR2類型的字串值將會按照實際的長度進行儲存,而不用空格補齊。

說明 對於VARCHAR類型的值來說,尾部的空格在語義上是有意義的。

如果需要明確地把超出長度的值轉換為VARCHAR類型, 那麼超出長度的值將被截斷到字串n指定的長度,而不產生錯誤(如在SQL標準中指定的一樣)。

CLOB

可以在CLOB類型中儲存長字串。除了沒有指定長度的限制外,CLOB在語義上等同於VARCHAR2。通常來說當字串的最大長度不可知的時候,建議使用CLOB類型,而不是VARCHAR2類型。
說明 CLOB類型可儲存字串的最大長度大約是1GB。

TEXT

可以在TEXT類型中儲存長字串。TEXT和CLOB類型類似,沒有長度限制。可用於儲存最大長度不可知的字串。
說明 TEXT類型可儲存字串的最大長度大約是1GB。

注意

對於以上幾種類型資料的儲存空間要求來說,如果字串長度小於127個位元組,那麼實際儲存空間的大小就是實際字串的長度加上1個位元組,如果字串長度大於等於127個位元組,那麼實際儲存空間的大小就是實際字串長度加上4個位元組。對於CHAR型資料來說,字串後面附加的空格也是需要儲存空間的。而系統會自動壓縮長字串,這樣在磁碟上要求的實際儲存空間要少一些。長字串值是儲存在後台表中,所以在快速存取短列值的時候,它們不會產生幹擾。

資料庫字元集決定了用來儲存文本值的字元集。