当前位置: 代码迷 >> Sybase >> 改动SYBASE默认字符集为CP936
  详细解决方案

改动SYBASE默认字符集为CP936

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