sybase 特殊字符 中文乱码,求解决

mingzhiming 2013-07-01 06:43:13
我手头拿到一个sybase dump出来的数据文件,500多M,现在导入到sybase,我load database后,将字符集server端和client端都设置成cp936,但是重启两次生效,但是查询后,发现全部中文乱码,我又将客户端的字符集变成iso_1,查询现实正常(绝大不份数据),但是有时又的数据会出现?号,有网友说是这个原因:

bcp从sybase导出数据,列分隔符"<EOFD>",行分隔符"<EORD>",sybase字符集iso_1
sqlldr导入oracle中,导入时部分记录报错,日志中出现大量:
Record 16: Rejected - Error on table ttt, column ccc.
ORA-01401: inserted value too large for column
以及其他错误。

bad文件中能看到问题数据分割部分都是?EOFD>,查看16进制代码,发现?并不是实际的问号,看到的是特殊字符和<字符合成的新特殊字符,也就是说,特殊字符吃掉了<分隔符,导致数据导入失败。。。。。。

把<分隔符换成其他符号,都一样被吃掉。。。

解决方法就是在分隔符前加入'^'符号
然后导入时"RTRIM(:CITY_ID,'^')" 过滤掉。


但是我自己没具体明白是什么意思,也不知道问题出在哪里,我手里只要这个dump文件,可以通过什么方式查看以前的数据库编码方式呢?sybase初级人员,求大侠解释下,如何解决这个问题
...全文
380 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

2,596

社区成员

发帖
与我相关
我的任务
社区描述
Sybase相关技术讨论区
社区管理员
  • Sybase社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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