Oracle 資料型別CHAR, NCHAR, VARCHAR2, NVARCHAR2
CHAR與VARCHAR2
字元資料通常是以單位元組儲存在資料庫字符集中:
CHAR
--固定長度的字串最長可達2000個位元組
--內部程式碼:96
VARCHAR@
--可變長的字串最長可達4000個位元組
--內部程式碼:1
CHAR
在一個型別為char的列中,所有空位元組都會用空格來補充(字元32)
它的長度是固定的
SQL> select gr03,dump(gr03) from wb02 where gr03
GR03 DUMP(GR03)
---------------- ---------------------------------------------------------------
4307050000000091 Typ=96 Len=16: 52,51,48,55,48,53,48,48,48,48,48,48,48,48,57,49
4307050000000092 Typ=96 Len=16: 52,51,48,55,48,53,48,48,48,48,48,48,48,48,57,50
430705000000093 Typ=96 Len=16: 52,51,48,55,48,53,48,48,48,48,48,48,48,48,57,51
4307050000000094 Typ=96 Len=16: 52,51,48,55,48,53,48,48,48,48,48,48,48,48,57,52
43070500000095 Typ=96 Len=16: 52,51,48,55,48,53,48,48,48,48,48,48,48,48,57,53
從上面的輸出typ=96,len=16,可以看出char的內部程式碼是96,長度是16
varchar2
在一個型別為varchar2的列中,oracle不會使用空格來進行補位
它的長度是可變的
SQL> select dw02,dump(dw02) from wb01 where dw01
DW02 DUMP(DW02)
-------------------------- --------------------------------------------------------------------------------
靈活人員 Typ=1 Len=8: 193,233,187,238,200,203,212,177
靈活就業人員 Typ=1 Len=12: 193,233,187,238,190,205,210,181,200,203,212,177
西湖區委、區管委 Typ=1 Len=16: 206,247,186,254,199,248,206,175,161,162,199,248,185,220,206,175
西湖區委、區管委辦公室 Typ=1 Len=22: 206,247,186,254,199,248,206,175,161,162,199,248,185,220,206,175,17
西湖管理區政治部 Typ=1 Len=16: 206,247,186,254,185,220,192,237,199,248,213,254,214,206,178,191
西湖管理區監察局 Typ=1 Len=16: 206,247,186,254,185,220,192,237,199,248,188,224,178,236,190,214
西湖管理區財政局 Typ=1 Len=16: 206,247,186,254,185,220,192,237,199,248,178,198,213,254,190,214
從上面的輸出typ=1可以看出varchar2的內部程式碼是1,它的長度不是固定的
nchar與nvarchar2
字元資料也可以儲存在國際(多位元組)字符集中
nchar
--固定長度的字串最大可達2000個位元組
--內部程式碼:96
nvarchar2
--可變長度的字串最大可達4000個位元組
--內部程式碼:1
nchar
在一個型別為nchar的列中,所有空位元組都會用空格來補充(字元32)
它的長度是固定的
SQL> desc wb02_jy
Name Type Nullable Default Comments
---- --------- -------- ------- --------
GR03 NCHAR(18) Y
SQL> select gr03,dump(gr03) from wb02_jy;
GR03 DUMP(GR03)
----------------------------- --------------------------------------------------------------------------------
4307050000000091 Typ=96 Len=36: 0,52,0,51,0,48,0,55,0,48,0,53,0,48,0,48,0,48,0,48,0,48,0,48,0,48,
4307050000000092 Typ=96 Len=36: 0,52,0,51,0,48,0,55,0,48,0,53,0,48,0,48,0,48,0,48,0,48,0,48,0,48,
4307050000000093 Typ=96 Len=36: 0,52,0,51,0,48,0,55,0,48,0,53,0,48,0,48,0,48,0,48,0,48,0,48,0,48,
4307050000000094 Typ=96 Len=36: 0,52,0,51,0,48,0,55,0,48,0,53,0,48,0,48,0,48,0,48,0,48,0,48,0,48,
4307050000000095 Typ=96 Len=36: 0,52,0,51,0,48,0,55,0,48,0,53,0,48,0,48,0,48,0,48,0,48,0,48,0,48,
如上輸出一樣gr03定義為nchar(18),但是它是雙位元組所以長度len=36是18的2倍,內部程式碼還是與char一樣96
nvarchar2
在一個型別為nvarchar2的列中,oracle不會使用空格來進行補位
它的長度是可變的
SQL> select dw02,dump(dw02) from wb01_jy;
DW02 DUMP(DW02)
----------------------------- --------------------------------------------------------------------------------
靈活人員 Typ=1 Len=8: 112,117,109,59,78,186,84,88
靈活就業人員 Typ=1 Len=12: 112,117,109,59,92,49,78,26,78,186,84,88
西湖區委、區管委 Typ=1 Len=16: 137,127,110,86,83,58,89,212,48,1,83,58,123,161,89,212
西湖區委、區管委辦公室 Typ=1 Len=22: 137,127,110,86,83,58,89,212,48,1,83,58,123,161,89,212,82,158,81,10
西湖管理區政治部 Typ=1 Len=16: 137,127,110,86,123,161,116,6,83,58,101,63,108,187,144,232
西湖管理區監察局 Typ=1 Len=16: 137,127,110,86,123,161,116,6,83,58,118,209,91,223,92,64
西湖管理區財政局 Typ=1 Len=16: 137,127,110,86,123,161,116,6,83,58,141,34,101,63,92,64
西湖管理區勞動保障局 Typ=1 Len=20: 137,127,110,86,123,161,116,6,83,58,82,179,82,168,79,221,150,156,92
西湖管理區農村經濟開發局 Typ=1 Len=24: 137,127,110,86,123,161,116,6,83,58,81,156,103,81,126,207,109,78,95
西湖管理區衛生局 Typ=1 Len=16: 137,127,110,86,123,161,116,6,83,58,83,107,117,31,92,64
西湖管理區國土局 Typ=1 Len=16: 137,127,110,86,123,161,116,6,83,58,86,253,87,31,92,64
西湖管理區移民開發局 Typ=1 Len=20: 137,127,110,86,123,161,116,6,83,58,121,251,108,17,95,0,83,209,92,6
西湖管理區經貿局 Typ=1 Len=16: 137,127,110,86,123,161,116,6,83,58,126,207,141,56,92,64
從上面的輸出typ=1可以看出nvarchar2的內部程式碼是1,它的長度不是固定的
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26015009/viewspace-747233/,如需轉載,請註明出處,否則將追究法律責任。
下一篇:
oracle的undo的作用
請登入後發表評論
登入
全部評論
相關文章
- Oracle 中varchar2 和nvarchar2區別Oracle
- MySQL中資料型別(char(n)、varchar(n)、nchar(n)、nvarchar(n)的區別)MySql資料型別
- LightDB 22.4 新特性之完全相容Oracle varchar2資料型別Oracle資料型別
- MySQL資料型別操作(char與varchar)MySql資料型別
- [20221012]簡單探究nvarchar2資料型別儲存.txt資料型別
- std::cout 輸出 unsigned char型別資料型別
- Oracle 資料型別Oracle資料型別
- 【轉】ORACLE資料型別Oracle資料型別
- Oracle anydata資料型別Oracle資料型別
- ORACLE NUMBER資料型別Oracle資料型別
- Oracle資料型別對應Java型別Oracle資料型別Java
- const char* 型別不能用於初始化char* 型別實體型別
- Oracle OCP(19):資料型別Oracle資料型別
- Oracle的number資料型別Oracle資料型別
- Oracle nvarchar2錯誤Oracle
- Oracle字串資料型別簡述Oracle字串資料型別
- Oracle和sqlserver資料型別對應OracleSQLServer資料型別
- Oracle基本資料型別儲存格式淺析——RAW型別Oracle資料型別
- CAPL指令碼中常用到的資料型別轉換——數字型別(int/double)和字串型別(char array)指令碼資料型別字串
- 【C++】CONST CHAR*型別的值不能用於初始化CHAR*型別的實體C++型別
- 資料型別與函式索引-Oracle篇資料型別函式索引Oracle
- E0144 "const char *" 型別的值不能用於初始化 "char *" 型別的實體型別
- Oracle long轉為varchar2Oracle
- NTMySQL中varchar和char型別的區別heeMySql型別
- js資料型別之基本資料型別和引用資料型別JS資料型別
- 資料型別: 資料型別有哪些?資料型別
- 1.1. Oracle 資料庫使用者型別Oracle資料庫型別
- [20191219]oracle timestamp資料型別的儲存.txtOracle資料型別
- 【VS2019 C++】"const char *" 型別的值不能用於初始化 "char *" 型別的實體C++型別
- 區別值型別資料和引用型別資料型別
- 當char型變數遇上char*型的指標變數指標
- Java char 型別究竟佔幾個位元組?Java型別
- const char*, char const*, char*const 有何區別?
- 資料型別,型別轉換資料型別
- 資料型別資料型別
- 高效能MySQL第四章 Schema與資料型別優化 VARCHAR和CHARMySql資料型別優化
- oracle資料庫事務transaction 不同的鎖lock型別Oracle資料庫型別
- Oracle 11G DBMS_REDEFINITION修改表資料型別Oracle資料型別
- Oracle BLOB型別的資料如何檢視和下載?Oracle型別