β

Sybase安装UTF8/CP936字符集

冷乐的Blog 303 阅读

这周在sybase中用bcp导入如数据的时候,报了如下错误。

BCP insert operation is disabled when data size is changing between client and server character sets.Plase use BCP's -Y option to invoke client-side converts...

sybase_27782

bcp字符集错误

看了一下,导出端服务器和导入端服务器字符集不一致导致。由于导出服务器使用的是UTF8编码,所以只需要在目标数据库安装UTF8字符集即可。(如果要安装cp936只需要把utf8相关的地方改为cp936即可)

一、安装字符集

  1. c:/>cd /sybase/charsets/utf8
  2. c:/sybase/charsets/cp936> charset -U用户名 -P密码 -S数据库服务器名称 binary.srt utf8

我们服务器中的sybase安装地址为c:/sybase,如果安装的是其他地址,请修改路径。

数据库服务器名称可以查看文件下的c:/sybase/ini/sql.ini中文件,其中每个服务的信息如下

[测试数据库]

master=TCP,172.16.6.25,5000

query=TCP,172.16.6.25,5000

其中方括号里的字符几位数据库服务名称

用数据连接工具如SqlAdv连接到数据库,然后执行如下语句。

select name,id from syscharsets

即可查看当前数据库已经安装的字符集。如下,咱们找到utf8对应的代码值,即190。

字符集列表

字符集列表

再执行如下语句,该语句的作用是将字符集设置为utf8。

sp_configure "default character set id",190

二、重启服务

执行完成之后,需要重启sybase server。

这里需要启动两次,第一次启动的时候会失败,再启动一次就成功了。

最后在连接到数据库,将之前的日志信息清除。

dump tran dbname with  truncate_only

然后再执行bcp命令,就一路成功了。

作者:冷乐的Blog
伪技术类博客
原文地址:Sybase安装UTF8/CP936字符集, 感谢原作者分享。