往数据库中更新这些数据为什么总是出现截断字符串或二进制数据? 我的数据库建立的事下面的图片……

如题所述

先给你讲讲原理:char() varchar()等等都是非unicoid字符集。非unicoid字符集是一个字符占用一个字节。所以:char(4)最多可以放四个字节的字符。例如:“ABCD”由于:中国的汉字是一个字符<汉字>占用两个字节,所以:char(4)最多可以放两个汉字。因此:你放了三字汉字的话,就会出现截断现象。
根据数据库的优化原理,如果您的数据表中存放的汉字较多,建议您使用unicoid字符集,数据库字符类型中带有“N”的都是unicoid字符集。例如:nchar() Nvarchar()等等。如果您使用unicoid字符集,nchar(4)就可以存放4个汉字,8个数字或英文字母。
至于nchar() 和 nvarchar()区别以及char()和varchar()的区别在这儿,我就不告诉你了。
大概是一个自动适应,一个固定空间。具体还请您自己查看相关书籍。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-11-10
一个汉字两个字节,char(4)两个中文字符,所以“赵阳阳”你懂的追问

我把名字改成一个字的也不行……执行后出现的是将截断字符串或二进制数据……

追答

名字改成VARCHAR2类型吧,可以跟踪下你的sql,复制到sqlserver中运行,看是哪个字段报错

第2个回答  2012-11-09
数据类型改成short date?

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网