sybase 特殊字符 中文乱码,求解决
我手头拿到一个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初级人员,求大侠解释下,如何解决这个问题