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 --由於超出第二列的兩個字符,所以報錯
(原創)關於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 --由於超出第二列的兩個字符,所以報錯
引用URL
http://cgi.blog.roodo.com/trackback/2723829