新建一个表两列均为长度20 byte(字节),一列char类型,一列为varchar2类型
SQL> create table test_char_varchar2(char_col char(20), col_varchar varchar2(20));
SQL> insert into test_char_varchar2 values('Hello World!','Hello World!');
SQL> select * from test_char_varchar2

上图似乎char 和varchar类型没有什么两样
SQL>select * from test_char_varchar2 where char_col=col_varchar;

这已经看出他们并不一样,这涉及到字符串比较的问题。
如果要让两列相等?
1)用trim把char_col列的空格去掉
2)用rpad把col_ varchar列用空格进行填充长度为20的字符
SQL>select * from test_char_varchar2 where col_varchar= trim(char_col);
SQL>select * from test_char_varchar2 where char_col = rpad(col_varchar,20);

本文通过创建一个包含Char和Varchar2类型的表,对比了这两种数据类型的差异,尤其是在字符串比较时的不同表现,并提供了使两列相等的方法。
1093

被折叠的 条评论
为什么被折叠?



