2007年02月14日

[轉貼]分享關於varchar2類型的寫法

http://www.oracle.com.cn/thread-115323-1-1.html

(原創)關於varchar2的寫法


目的: 主要是區別字節和字符
另外ORACLE推薦使用varchar2, 而不用varchar,原因是以後的ORACLE版本可能不兼容
1.varchar2(2),表示2個字節, 2bytes.
2.varchar2(2 char) 表示2個字符, 2個符號.
例子:
SQL> desc test
Name Type             Nullable Default Comments
---- ---------------- -------- ------- --------
C1   VARCHAR2(2)      Y                        
C2   VARCHAR2(2 CHAR) Y                        

SQL> insert into test values ('aa','aa');   --成功
1 row inserted
SQL> insert into test values ('aaa','aaa');  ---一個字母佔1個字節,一個中文佔2個字節
insert into test values ('aaa','aaa')
ORA-01401: inserted value too large for column --由於超出第一列的兩個字節,所以報錯
SQL> insert into test values ('aa','aaa');
insert into test values ('aa','aaa')
ORA-01401: inserted value too large for column --由於超出第二列的兩個字節,所以報錯
SQL> insert into test values ('安','安安');   --成功
1 row inserted
SQL> insert into test values ('安安','安安');
insert into test values ('安安','安安')
ORA-01401: inserted value too large for column  --由於超出第一列的兩個字符,所以報錯
SQL> insert into test values ('安','安安安');
insert into test values ('安','安安安')
ORA-01401: inserted value too large for column   --由於超出第二列的兩個字符,所以報錯

 

Posted by my_work at 樂多Roodo! │10:30 │回應(0)引用(0)DB
樂多分類:網路/3C 共同主題:Oracle 工具:編輯本文
Ads by Roodo! 

引用URL

http://cgi.blog.roodo.com/trackback/2723829