對於oracle varchar 的種種

drop table VARCHAR_Test cascade constraints;

/*==============================================================*/
/* Table: "VARCHAR"                                             */
/*==============================================================*/
create table VARCHAR_Test  (
   VARCHAR_NULL         VARCHAR(4),
   VARCHAR_BYTE         VARCHAR2(4 BYTE),
   VARCHAR_CHAR         VARCHAR2(4 CHAR)
);


select * from VARCHAR_TEST

insert into VARCHAR_TEST (varchar_null) values('aaaa')/*OK*/

insert into VARCHAR_TEST(varchar_null) values('aaaaa')/*ORA-12899: 列 "SIMPLE"."VARCHAR_TEST"."VARCHAR_NULL" 的值太大 (實際值: 5, 最大值: 4)*/

insert into VARCHAR_TEST(varchar_null) values('中文')/*OK*/

insert into VARCHAR_TEST(varchar_null) values('中文數據')/*ORA-12899: 列 "SIMPLE"."VARCHAR_TEST"."VARCHAR_NULL" 的值太大 (實際值: 8, 最大值: 4)*/
/*=================================*/

insert into VARCHAR_TEST (VARCHAR_BYTE) values('aaaa')/*OK*/

insert into VARCHAR_TEST(VARCHAR_BYTE) values('aaaaa')/*ORA-12899: 列 "SIMPLE"."VARCHAR_TEST"."VARCHAR_ BYTE " 的值太大 (實際值: 5, 最大值: 4)*/

insert into VARCHAR_TEST(VARCHAR_BYTE) values('中文')/*OK*/

insert into VARCHAR_TEST(VARCHAR_BYTE) values('中文數據')/*ORA-12899: 列 "SIMPLE"."VARCHAR_TEST"."VARCHAR_ BYTE " 的值太大 (實際值: 8, 最大值: 4)*/
/*=================================*/

insert into VARCHAR_TEST (VARCHAR_CHAR) values('aaaa')/*OK*/

insert into VARCHAR_TEST(VARCHAR_CHAR) values('aaaaa')/*ORA-12899: 列 "SIMPLE"."VARCHAR_TEST"."VARCHAR_ CHAR " 的值太大 (實際值: 5, 最大值: 4)*/

insert into VARCHAR_TEST(VARCHAR_CHAR) values('中文')/*OK*/

insert into VARCHAR_TEST(VARCHAR_CHAR) values('中文數據')/*ORA-12899: 列 "SIMPLE"."VARCHAR_TEST"."VARCHAR_ CHAR " 的值太大 (實際值: 8, 最大值: 4)*/

insert into VARCHAR_TEST(VARCHAR_CHAR) values('中文數據D')/*ORA-12899: 列 "SIMPLE"."VARCHAR_TEST"."VARCHAR_ CHAR " 的值太大 (實際值: 5, 最大值: 4)*/

insert into VARCHAR_TEST(VARCHAR_CHAR) values('中文數據的')/*ORA-12899: 列 "SIMPLE"."VARCHAR_TEST"."VARCHAR_ CHAR " 的值太大 (實際值: 5, 最大值: 4)*/
/*=================================*/

/************總結: *****************/
在oracle 中 varchar 跟varchar2(n%byte)一致
在oracle 中 varchar2(n%char) 中文跟英文同樣算一個佔位
其餘,你都懂。
相關文章
相關標籤/搜索