更改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
你将看到下面的信息,表示这时你已经成功添加了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中,重新建立新的空数据库,仔细规划好生产数据库数据设备和日志设备的大小