资源描述:
《informix与oracle的varchar字段和char字段在处理尾部空格的区别》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、1、varchar主键的测试Informix9.40FC4下:droptabletest_pk_varchar;createtabletest_pk_varchar(varchar_colvarchar(2),primarykey(varchar_col));insertintotest_pk_varcharvalues('1')insertintotest_pk_varcharvalues('1')结果:失败结论:informix的varchar型字段把1和1空格等价处理。Informix认为varchar型字段的输入值的尾部空格无业务含义。
2、内部使用时隐含滤掉空格的处理。droptabletest_pk_char;createtabletest_pk_char(char_colchar(2),primarykey(char_col));insertintotest_pk_charvalues('1')insertintotest_pk_charvalues('1')结果:失败结论:informix的char型字段把1和1空格等价处理。Informix认为char型字段的输入值的尾部空格无业务含义。内部使用是隐含滤掉空格的处理。Oracle10.2.0.4.0下:droptablet
3、est_pk_varchar;createtabletest_pk_varchar(varchar_colvarchar(2),primarykey(varchar_col));insertintotest_pk_varcharvalues('1')insertintotest_pk_varcharvalues('1')结果:成功结论:oracle的varchar型字段把1和1空格不等价处理。Oracle认为varchar型字段的输入值的尾部空格有业务含义。内部使用时,不隐含滤掉空格的处理。droptabletest_pk_char;creat
4、etabletest_pk_char(char_colchar(2),primarykey(char_col));insertintotest_pk_charvalues('1')insertintotest_pk_charvalues('1')结果:失败结论:oracle的char型字段把1和1空格等价处理。Oracle也认为char型字段的输入值的尾部空格无业务含义。内部使用是隐含滤掉空格的处理。2、varchar查询的测试准备测试环境--droptabletest_varchar1;createtabletest_varchar1(var
5、char_col1varchar(10),char_col2char(1));--droptabletest_char1;createtabletest_char1(char_col1char(10),char_col2char(1));--在test_varchar1表中插入两条记录,一条带空格,一条不带空格insertintotest_varchar1values('1234567','1');insertintotest_varchar1values('1234567','2');--在test_char1表中插入与test_varcha
6、r表完全相同的两条记录insertintotest_char1values('1234567','1');insertintotest_char1values('1234567','2');--生成一个与test_varchar1表完全相同的表test_varchar2--droptabletest_varchar2;createtabletest_varchar2(varchar_col1varchar(10),char_col2char(1));insertintotest_varchar2select*fromtest_varchar1;
7、--生成一个与test_char1表完全相同的表test_char2--droptabletest_char2;createtabletest_char2(char_col1char(10),char_col2char(1));insertintotest_char2select*fromtest_char1;--进行查询测试--1、以尾部无空格的字符串参数对varchar字段进行查询selectconcat(varchar_col1,’
8、’),char_col2fromtest_varchar1wherevarchar_col1='12345
9、67';--2、以尾部无空格的字符串参数对char字段进行查询selectconcat(char_col1,’
10、’),char_col2fromtes