最近碰到一个db2字段数值问题的bug,差了半天,发现原来是dbvisualer的字段显示问题,特此记录此异常。

测试过程:

1、建表,简单的测试表:

CREATE TABLE

USR.A_TEST

(

ID INTEGER NOT NULL,

NAME CHARACTER(4) NOT NULL

);

2、插入数据,插入一个16进制字段:

insert into USR.A_TEST (id, name) values (3, x'ffffff20')

 

3、查看数据,sql查询正常:

select hex(name) from usr.a_test where id =3

Dbvisualizer9.1对db2的char字段存16进制数据处理异常_第1张图片

 

4、使用dbvisualizer的编辑器查看数据:

Dbvisualizer9.1对db2的char字段存16进制数据处理异常_第2张图片

从ff变为了3f了。。。

 

看起来,还是命令行的最靠谱。


续,对声明了 for bit data的表,就没有问题了:

1、建表:

CREATE TABLE

usr.A_TEST

(

ID INTEGER NOT NULL,

NAME CHARACTER(4) for bit data NOT NULL

);

2、插入数据:

insert into USR.A_TEST (id, name) values (3, x'ffffff20')

3、查看数据:

select hex(name) from usr.a_test where id =3

Dbvisualizer9.1对db2的char字段存16进制数据处理异常_第3张图片

4、使用dbvisualizer的编辑器查看数据:

Dbvisualizer9.1对db2的char字段存16进制数据处理异常_第4张图片