• 全部
  • 基础类
  • 应用实例
  • 新技术前沿

sql字符内容问题

tshow 2005-07-26 02:54:08
"AAAA□□□□"如果一个记录中出现这样的内容,如何处理?我其实只要AAAA的结果,后面的是sql自己生成的,而且还占长度,len()的结果是8
那位高人知道是什么原因导致如此的,如何消除后面的□?
这个□拷贝出来到记事本等工具里,是空白,没有内容的。如何处理?

导致在VB程序中,ADO recordset读出来的内容有误,不是一个正确的字符串。

急,高分相送
...全文
149 点赞 收藏 9
写回复
9 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
冷箫轻笛 2005-07-26
我的意思不是说全部用手工改,
我只是想知道手工改的话会不会成功

个人认为这个问题向要解决的话必须分析它的原因!
为什么大部分数据正常而这部分数据有问题
回复
tshow 2005-07-26
啊,手工肯定不行,虽然少量,但是手工还是会死人的
问题就是那个空白的东西不知道如何替换啊,在系统之外就是空字符了,哈
回复
冷箫轻笛 2005-07-26
如果手工修改一条记录,去掉“□”的话,那系统会不会再自动加上这个“□”?
回复
phantomMan 2005-07-26
使用 Replace 把它替换为'' 或者一般空格
回复
冷箫轻笛 2005-07-26
数据类型有问题?
回复
tshow 2005-07-26
谢谢
应该不是如此的,系统自动加上的空格是不被计算长度的,即len()时结果应该为4,这种空格在系统里显示为空白,不会有“□”
这个“□”其实也是空格,可能是不同编码格式下的,但是我闹不清是何格式,产生原因如何
只有小量记录如此,其他正常,用ltrim处理时系统并不把他作为空格处理掉,迷糊中。郁闷
回复
popsn 2005-07-26
学习
回复
xiaonvjing 2005-07-26
这个字段的数据类型是不是char型(定长字符数据类型)呀,
这种数据类型,在存储数据时,当你输入的内容小于你建表
时所给的长度时,后面就会出现空格。如果你希望你存储的数据
实际长度与你输入的内容是一致的话,你可以将其数据类型改为
varchar(变长字符数据类型),再往里面输入记录时,就不会
出现这种情况啦

alter table table1
alter column name1 varchar(12)

如果你不想修改数据类型的话,你还可以这样做:

select rtrim(name1) from table1

回复
tshow 2005-07-26
有那位遇到过类似问题,告诉点头绪
回复
发帖
MS-SQL Server
创建于2007-09-28

3.3w+

社区成员

MS-SQL Server相关内容讨论专区
申请成为版主
帖子事件
创建了帖子
2005-07-26 02:54
社区公告
暂无公告