標籤:
DB2字串是DB2資料庫中的基礎知識,下面就為您分類介紹DB2字串,供您參考,如果您對DB2字串方面剛興趣的話,不妨一看。
DB2字串是位元組序列。DB2字串包括 CHAR(n) 類型的定長字串和 VARCHAR(n)、LONG VARCHAR 或 CLOB(n) 類型的變長字串。字串的長度就是序列中的位元組數。
*定長字串,CHARACTER(n) 或 CHAR(n):定長字串的長度介於 1 到 254 位元組之間。如果沒有指定長度,那麼就認為是 1 個位元組。
*變長字串,VARCHAR(n)、CHARACTER VARYING(n) 或 CHAR VARYING(n):VARCHAR(n) 類型的字串是變長字串,最長可達 32,672 位元組。
*LONG VARCHAR:LONG VARCHAR 類型的字串是變長字串,最長可達 32,700 位元組。
*字元大對象字串(Character Large Object String),CLOB(n[K|M|G]):CLOB 是變長字串,最長可以達到 2,147,483,647 位元組。如果只指定了 n,那麼 n 的值就是最大長度。如果指定了 nK,那麼最大長度就是 n*1,024(n 的最大值為 2,097,152)。如果指定了 nM,那麼最大長度就是 n*1,048,576(n 的最大值為 2,048)。如果指定了 nG,那麼最大長度就是 n*1,073,741,824(n 的最大值是 2)。CLOB 用於儲存基於大單一位元組字元集(single-byte character set,SBCS)字元的資料或基於混合(多位元組字元集(MBCS)和 SBCS)字元的資料。圖形字串是表示雙位元組字元資料的位元組序列。圖形字串包括類型為 GRAPHIC(n) 的定長圖形字串和類型為 VARGRAPHIC(n)、LONG VARGRAPHIC 和 DBCLOB(n) 的變長圖形字串。DB2字串的長度就是序列中雙位元組字元的數目。
*定長圖形字串,GRAPHIC(n):定長圖形字串的長度介於 1 到 127 個雙位元組字元之間。如果沒有指定長度,就認為是 1 個雙位元組字元。
*變長圖形字串,VARGRAPHIC(n):VARGRAPHIC(n) 類型的字串是變長圖形字串,最大長度可達 16,336 個雙位元組字元。
*LONG VARGRAPHIC:LONG VARGRAPHIC 類型的字串是變長圖形字串,最大長度可達 16,350 個雙位元組字元。
*雙位元組字元大對象字串,DBCLOB(n[K|M|G]):雙位元組字元大對象是變長雙位元組字元圖形字串,最長可達 1,073,741,823 個字元。如果只指定了 n,那麼 n 就是最大長度。如果指定了 nK,那麼最大長度就是 n*1,024(n 的最大值為 1,048,576)。如果指定了 nM,那麼最大長度就是 n*1,048,576(n 的最大值為 1,024)。如果指定了 nG,那麼最大長度就是 n*1,073,741,824(n 的最大值是 1)。DBCLOB 用於儲存基於大 DBCS(雙位元組字元集,double-byte character set)字元的資料。二進位字串是位元組序列。二進位字串包括 BLOB(n) 類型的變長字串,它用於容納非傳統型的資料,諸片、語音或混合媒體等,還可以容納使用者定義的類型及使用者定義的函數的結構化資料。
* 二進位大對象,BLOB(n[K|M|G]):二進位大對象是變長字串,最長可達 2,147,483,647 位元組。如果只指定了 n,那麼 n 就是最大長度。如果指定了 nK,那麼最大長度就是 n*1,024(n 的最大值為 2,097,152)。如果指定了 nM,那麼最大長度就是 n*1,048,576(n 的最大值為 2,048)。如果指定了 nG,那麼最大長度就是 n*1,073,741,824(n 的最大值是 2)。
好像UTF-8儲存中文會2位也會3位,不過不知道什麼原因會不同。
我是用AS400上的DB2做測試的,直接用strsql去運行一下“select length(‘哈哈‘) from TableA”,結果是6;但是如果在一個應用程式中輸入“哈哈”並記錄到表的FieldA中,再select length(FieldA) from TableA,結果是4。真是費解……
原文出自【位元網】,轉載請保留原文連結:http://soft.chinabyte.com/database/492/12274992.shtml
DB2資料庫中DB2字串類型