oracle小知識點1--varchar2的長度
(1)varchar2最大的長度是4000位元組
(2)一個漢字和一個英文字母都是一個字元,但在varchar2中佔的位元組數是不同的,可以透過lengthb()函式檢視
(3)varchar2預設定義的是位元組,例如varchar(10)指的是長度最大為10位元組的變長字串
(4)varchar2能存多少漢字跟NLS_CHARACTERSET的型別有關,因為不同的字符集中一個漢字佔的位元組數是不同的
(5)varchar2也可以定義為字元長度,就是在長度後加char,例如varchar(10 char),這樣就可以存10個字元
(6)nvarchar2中預設定義的是字元長度,而且英文和中文的長度佔的位元組數是一樣的.
--建立測試表
SQL> create table test_varchar(a varchar2(10),b nvarchar2(10),c varchar2(10 char)
表已建立。
--查詢資料庫字符集
SQL> select * from v$nls_parameters
2 where parameter like '%CHARACTERSET%';
PARAMETER
----------------------------------------------------------------
VALUE
----------------------------------------------------------------
NLS_CHARACTERSET
ZHS16GBK
NLS_NCHAR_CHARACTERSET
AL16UTF16
--以下是測試
SQL> insert into test_varchar(a)
2 select '1234567890' from dual;
已建立 1 行。
SQL> insert into test_varchar(a)
2 select '小蘋果' from dual;
已建立 1 行。
SQL> insert into test_varchar(a)
2 select '小小蘋果' from dual;
已建立 1 行。
SQL> insert into test_varchar(a)
2 select '小蘋果小蘋果' from dual;
select '小蘋果小蘋果' from dual
*
第 2 行出現錯誤:
ORA-12899: 列 "SYSTEM"."TEST_VARCHAR"."A" 的值太大 (實際值: 12, 最大值: 10)
SQL> insert into test_varchar(b)
2 select '1234567890' from dual;
已建立 1 行。
SQL> insert into test_varchar(b)
2 select '小小蘋果小小蘋果' from dual;
已建立 1 行。
SQL> insert into test_varchar(c)
2 select '小小蘋果小小蘋果' from dual;
已建立 1 行。
SQL> commit;
提交完成。
(2)一個漢字和一個英文字母都是一個字元,但在varchar2中佔的位元組數是不同的,可以透過lengthb()函式檢視
(3)varchar2預設定義的是位元組,例如varchar(10)指的是長度最大為10位元組的變長字串
(4)varchar2能存多少漢字跟NLS_CHARACTERSET的型別有關,因為不同的字符集中一個漢字佔的位元組數是不同的
(5)varchar2也可以定義為字元長度,就是在長度後加char,例如varchar(10 char),這樣就可以存10個字元
(6)nvarchar2中預設定義的是字元長度,而且英文和中文的長度佔的位元組數是一樣的.
--建立測試表
SQL> create table test_varchar(a varchar2(10),b nvarchar2(10),c varchar2(10 char)
表已建立。
--查詢資料庫字符集
SQL> select * from v$nls_parameters
2 where parameter like '%CHARACTERSET%';
PARAMETER
----------------------------------------------------------------
VALUE
----------------------------------------------------------------
NLS_CHARACTERSET
ZHS16GBK
NLS_NCHAR_CHARACTERSET
AL16UTF16
--以下是測試
SQL> insert into test_varchar(a)
2 select '1234567890' from dual;
已建立 1 行。
SQL> insert into test_varchar(a)
2 select '小蘋果' from dual;
已建立 1 行。
SQL> insert into test_varchar(a)
2 select '小小蘋果' from dual;
已建立 1 行。
SQL> insert into test_varchar(a)
2 select '小蘋果小蘋果' from dual;
select '小蘋果小蘋果' from dual
*
第 2 行出現錯誤:
ORA-12899: 列 "SYSTEM"."TEST_VARCHAR"."A" 的值太大 (實際值: 12, 最大值: 10)
SQL> insert into test_varchar(b)
2 select '1234567890' from dual;
已建立 1 行。
SQL> insert into test_varchar(b)
2 select '小小蘋果小小蘋果' from dual;
已建立 1 行。
SQL> insert into test_varchar(c)
2 select '小小蘋果小小蘋果' from dual;
已建立 1 行。
SQL> commit;
提交完成。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28539951/viewspace-1684587/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 省的百度的小知識點(JS)JS
- oracle事務知識點小結Oracle
- oracle小知識點9--cluvfyOracle
- oracle 歸檔日誌的小知識點Oracle
- Oracle_day1(小知識點)Oracle
- VEEAM的小知識點
- java小知識點Java
- js小知識點JS
- 小知識點1
- 前端小知識點前端
- mongo 小知識點Go
- javascript小知識點JavaScript
- PHP小知識點PHP
- 記錄的小知識點
- 浮點數小知識點
- Oracle知識小記Oracle
- 【JAVA】- 知識點小結Java
- promise知識點小結Promise
- CSS小知識點一CSS
- HTTP知識點小結HTTP
- makefile 知識點小結
- ElasticSearch知識點小記Elasticsearch
- 總結的小知識點(一)
- oracle小知識點16-診斷事件diagnostic eventsOracle事件
- oracle小知識點7--索引的unusable,disable,invisibleOracle索引
- 前端小知識點彙總前端
- 前端(js html)小知識點前端JSHTML
- node知識點小結(一)
- golang小知識點記錄Golang
- iOS小知識點羅列iOS
- shell知識點小結2
- awk知識點小結1
- shell知識點小結1
- oracle小知識點3--有保證的復原點guaranteed restore pointOracleREST
- Oracle 相關知識點Oracle
- oracle小知識點14--xtts傳輸表空間OracleTTS
- Oracle表空間小知識Oracle
- 雜湊表知識點小結