sybase 字符节的问题
关于sybase的字符集的问题。该如何设置
一、将cp936拷贝在sybase/charsets/下
二、导入cp936字符
1.c:\>cd \sybase\charsets\cp936
2.c:\sybase\charsets\cp936> charset -Usa -P binary.srt cp936
三、修改sybase配置
isql -Usa -P
1>select name,id from syscharsets
2>go
找到name为cp936对应的id(假设为171)
1>sp_configure 'default character set id',171
2>go
重启server两次
(注:第一次启动后,server会自动宕掉,需要第二次重启后才能使用)
结果还是不这么管用。。
在C:\Sybase\locales中 nt 的locale = default, us_english, iso_1的iso_1改成了cp936
请教
[解决办法]
可能参考 更改SYBASE默认字符集为CP936
[解决办法]
更改SYBASE默认字符集为CP936
注意:更改字符集后要重新建立数据库。
1、在isql状态下查看原来数据库字符集使用情况,服务器和客户端的都要查看,方法是:
获得服务器端的字符集情况:
1>sp_helpsort
2>go
输出结果应为:
Character Set = 2, cp850
Code Page 850 (Multilingual) character set.
Sort Order = 50, bin_cp850
Binary Sort Order for Code Page 850 (cp850).
获得客户端字符集情况:
1>select @@client_csname
2>go
输出结果应为:iso_1
说明:很多时候应用程序报错,客户端和服务器端字符集不相匹配。
2、将数据库的缺省字符集设置为cp936:
C:\>cd sybase
C:\sybase>cd charsets
C:\sybase\charsets>cd cp936
C:\sybase\charsets\cp936>charset -Usa -Psybase -Sdiren binary.srt cp936
charset –U用户名 –P密码 –SPORTALSERVER服务名(不可为ip) binary.srt cp936
你将看到下面的信息,表示这时你已经成功添加了cp936字符集到你的系统中。
Loading file 'binary.srt'.
Found a [sortorder] section.
This is Class-1 sort order.
Finished loading the Character Set Definition.
Finished loading file 'binary.srt'.
1 sort order loaded successfully
3、接着是将添加的cp936设置为你的缺省值。方法是:
C:\sybase\charsets\cp936>isql -Usa -Psybase -Sdiren
1> select name,id from syscharsets
2> go
ascii_8 0
iso_1 1
cp850 2
bin_iso_1 50
bin_cp850 50
bin_cp936 50
cp936 171
这样知道你的cp936的ID号是171
4、将server的数据库缺省的字符集设置为cp936
1> sp_configure 'default character set id',171
2> go
In changing the default sort order, you have also reconfigured SQL Server's default character set.
Parameter Name Default Memory Used Config Value Run Value
------------------------------ ----------- ----------- ------------ -----------
default character set id 1 0 171 2
(1 row affected)
Configuration option changed. Since the option is static, Adaptive Server must be rebooted in order for the change to take effect.
(return status = 0)
5、重新启动服务器两次(参考使用DOS命令net start SYBSQL_diren)。第一次启动报错“服务器SYBSQL_diren不能启动,请检查它的配置”很正常,第二次正确启动,表明你的设置成功了。
6、在DOS下用edit修改客户端缺省字符集文件c:\sybase\locales\locales.dat
c:\sybase\locales\>edit locales.dat
首先找到[NT]操作系统分组,然后定位到该分组最后一行“local = default, us_english, iso_1”,将其修改为:“local = default, us_english, cp936”。
参考步骤1,确认服务器端和客户端字符集均已修改正确。
7、在Sybase Central中,重新建立新的空数据库,仔细规划好生产数据库数据设备和日志设备的大小。
[解决办法]
按照步骤配就行了.