新建一个表两列均为长度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);