以前对Oracle字符值的比较和储存没有弄得很清楚,直到最近写程序碰到了,才认真去实践验证了一下,结果还真的发现自己的一些错误熟悉。
对于char和varchar2类型数据库列值的储存,以前一直以为:
1、char列按输入的值储存,假如值长度不够char列的长度,则在后面补上空格char(32)
2、varchar2列按输入的值储存,假如值长度不够varchar2列的长度,后面不补空格 上面2点都是对的,不过下面这一点就不对了
3、即使输入的值后面含空格,varchar2列在储存时也会去掉,也就是说varchar2列后一定不含空格
SQL create table testyyw(col1 char(2),col2 varchar2(2)); Table created SQL insert into testyyw values ('x','x'); 1 row inserted SQL insert into testyyw values ('x ','x '); 1 row inserted SQL select dump(col1),du...[ 查看全文 ]