对于oracle varchar 的种种

本文详细介绍了 Oracle 数据库中 VARCHAR 类型的使用方法,包括 VARCHAR、VARCHAR2(n%BYTE) 和 VARCHAR2(n%CHAR) 的区别及应用示例。通过实际操作展示了不同类型的字段长度限制及其对中文字符的支持情况。
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) 中文跟英文一样算一个占位
其他,你都懂。

转载于:https://my.oschina.net/u/129569/blog/59480

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值