Oracle 字符串特殊字符导致无法拼接后续字段的问题

xycoder 2014-11-26 06:56:18
先看图。。。。纠结郁闷痛苦啊


两个汉字,按理应该只有4个字节,却多出了两个,需要替换掉这两个字节(不然导致系统出错)。
尝试拼接其他字符,却拼接不上。
复制到UE,显示很正常。

这多出的两个字节我也无法复制出来,所以无数据。

跪求大神提供解决思路或者方法!!!!!!!!!!跪谢!!!!!
...全文
666 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
小灰狼W 2014-11-27
  • 打赏
  • 举报
回复
引用 3 楼 u011704394 的回复:
select ascii(substr(a.name,-1,1)) ,a.name from tmp_ziduan a; --0 select ascii(substr(a.name,-2,2)) ,a.name from tmp_ziduan a; --0 select ascii(substr(a.name,-3,2)) ,a.name from tmp_ziduan a; --61138 --51370 无法现身,我怀疑多了字符串的结束字符$
0是空字符。把它去掉 update tmp_ziduan set name=rtrim(name,chr(0));
bw555 2014-11-27
  • 打赏
  • 举报
回复
用2楼的方法试试,先看看多出来的字符是啥,然后直接replace或trim掉就可以了
xycoder 2014-11-27
  • 打赏
  • 举报
回复
引用 1 楼 bw555 的回复:
试试trim之后再连接
trim (both from a.name)


无用。。。
xycoder 2014-11-27
  • 打赏
  • 举报
回复
select ascii(substr(a.name,-1,1)) ,a.name from tmp_ziduan a; --0 select ascii(substr(a.name,-2,2)) ,a.name from tmp_ziduan a; --0 select ascii(substr(a.name,-3,2)) ,a.name from tmp_ziduan a; --61138 --51370 无法现身,我怀疑多了字符串的结束字符$
bw555 2014-11-27
  • 打赏
  • 举报
回复
where instr(name,chr(0))>0
xycoder 2014-11-27
  • 打赏
  • 举报
回复
引用 6 楼 wildwave 的回复:
[quote=引用 3 楼 u011704394 的回复:] select ascii(substr(a.name,-1,1)) ,a.name from tmp_ziduan a; --0 select ascii(substr(a.name,-2,2)) ,a.name from tmp_ziduan a; --0 select ascii(substr(a.name,-3,2)) ,a.name from tmp_ziduan a; --61138 --51370 无法现身,我怀疑多了字符串的结束字符$
0是空字符。把它去掉 update tmp_ziduan set name=rtrim(name,chr(0));[/quote] 神牛很给力啊!!! 那么现在问题又来了,怎么select出这些包含 chr(0) 的数据?
小灰狼W 2014-11-26
  • 打赏
  • 举报
回复
汉字末尾有不明字符 试试让它现身 select ascii(substr(a.name,-1,1)) ,a.name from tmp_ziduan a;
bw555 2014-11-26
  • 打赏
  • 举报
回复
试试trim之后再连接
trim (both from a.name)

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧