在使用远程联合数据库对象的时候发现一个问题:
1、连接到远程数据库查询数据
select jybs_mx
from mq_agntinfo
fetch first 1 rows only
with ur;
结果
JYBS_MX
0会员降级
2、连接本地数据库,通过远程联合数据库对象查询同一个表
结果却是
JYBS_MX
0会员降
和远程数据库相比,少了一个汉字
3、通过以下SQL语句
select jybs_mx,length(trim(jybs_mx))
from mq_agntinfo
fetch first 1 rows only
with ur;
连接远程数据库查询结果是:
JYBS_MX 2
0会员降级 9
而连接本地数据库查询的结果却是:
JYBS_MX 2
0会员降 10
本地数据库把1个汉字作为3个字节处理,而远程数据库把1个汉字作为2个字节处理,而字段 JYBS_MX 的数据类型是varchar(10),超过部分被截掉了。
4、分别查看远程数据库和本地数据库的字符集
原来远程数据库的字符集是“GBK”,而本地数据库的字符集是“UTF-8”
结论:DB2数据库字符集为UTF-8时,1个汉字占3个字节
5、简单的解决办法:
把本地的昵称对应的字段类型长度改大,问题解决。
这个是 SqlServer 本身的问题 当打开数据库某一个表,如果第一列为int或bigint,并且标识符为"是",则在其他非INT或BIGINT列中输入不了汉字 解决方法:将第一列设置为非int或者bigint,就能在表中输入汉字 如果一定要将第一列设为int型, 就只能通过 sql语句来加入了
问题一:在数据库中,汉字属于什么字符类型 如果名字都用汉字就使用nvarchar 如果包括英文就varchar
具体区别打开sqlserver f1 输入数据类型看看
问题二:一般文字内容较多的数据应该选择 什么数据类型 你最好把它存在数据库中。 无论哪种类型,你取出来后终究是 string 型的。 文字可以存储为 byte[] 数组 byte[] 和 string 的转换请使用 SystemTextEncoding 对象的 GetString() 和 GetBytes() 方法。 ============================= 如果是看传输的速度话,那么两种是没有区别的。因为服务器和浏览器是通过TCP连接传输的,传输的时候实际上都是以字节的方式传输的
问题三:sql中汉字的数据类型 语句弄出来,无效是什么意思?
问题四:字母是什么类型的数据类型? char类型
问题五:数据库中数据类型怎样定义一些是文字的变量?如:name 可以定义成字符串 如下:
String name = "名字;String str = 123;String ss = aldf;
问题六:sqlsever数据类型对应的中文是什么 binary 二进制数据类型
bit 整型
char 字符型
cursor 特殊数据型
datetime 日期时间型
decimal 精确数值型
float 近似数值型
image 二进制数据类型
int 整型
money 货币型
nchar 统一编码字符型
ntext 统一编码字符型
numeric 精确数值型
nvarchar 统一编码字符型
real 近似数值型 Smalldatetime 日期时间型
allint 整型
allmoney 货币型
text 字符型
timestamp 特殊数据型
tinyint 整型
Uniqueidentifier 特殊数据型
varbinary 二进制数据类型
varchar 字符型
问题七:java中汉字是String类型的么? 字符串里的字符不管哪国文字。在java中内码一概以unicode编码。
哪有什么强制型转换的问题啊。
类型转换的前提是数据类型不一致。
String就是String。哪还需要转换呢?
问题八:sql存储汉字加英文用什么数据类型最好呢? nvarchar(1000) 因为他可变长度 所以不担心空间浪费
问题九:sql存储汉字加英文用什么数据类型最好 如果是oracle建议varchar2类型
问题十:插入汉字要定义什么类型的字段 如果名字都用汉字就使用nvarchar 如果包括英文就varchar 具体区别打开sqlserver f1 输入数据类型看看
以上就是关于在DB2数据库中,汉字什么时候占两个字节全部的内容,包括:在DB2数据库中,汉字什么时候占两个字节、输入汉字到SQL Server数据库表中的问题、汉字是什么数据类型等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)