积极答复者
image 字段类型,在 insert into 后数据发生变化。

问题
-
问题:
image 字段类型,进行insert into 插入操作之后,
若该 image 字段在数据库中存储的长度 > 43679 ,则会发生截断,截断部分的数据和未截断之前是一样的。
若该 image 字段在数据库中存储的长度 = 43679, 则数据会发生变化: 在 0x 后面会多一个 0 ,并会把该数据最后一位去掉。保证长度为 43679。
请问 0 是怎么出现的?为什么会出现这种情况?
ps:由于插入的数据太长,所以只能通过脚本的方式把问题说明。
image字段类型insert后问题描述及建表脚本.sql ;下载地址为:
http://www.kuaipan.cn/file/id_180137551233810436.htm
答案
全部回复
-
邹建大侠:
刚我用 datalength 求长度之后, 1 的数据长度是51362, 2 的数据长度是 21839 ;
43697是这样得来的: select len('1 或 2 的数据'),发现这样处理有可能是 datalength 的两倍:
1 的数据长度是 106326 ,2 的数据长度是 43697 。也就是说对于想 image 类型不能通过len()这样处理哈。
然后,通过 datalength 和 从数据表中把 insert 之后的数据来len() 求的长度对比,发现这样求的话数据长度差别很大,不是近乎2倍的关系,很可能是你说的显示问题。
通过 INSERT INTO Image_Test VALUES(4,0x1234)
INSERT INTO Image_Test VALUES(5,0x123) 测试后,的确如你所说的。我基本弄清楚是什么情况了。就是字典存储暂时不明白。我再找找资料。非常感谢邹建大侠!