Sybase ASE 15.0.3 for windows 安装中文语言支持、配置字符集

安装中文语言支持、配置字符集

         windows平台上,Sybase ASE15.0.3安装完成后默认语言是:英语(us_english),默认字符集为:cp850cp850是一个西欧字符集,虽然也能使用cp850字符集保存汉字,但是不推荐在生产环境中使用该字符集。

         如果生产系统中Sybase ASE数据库仅考虑支持简体中文的话,则可以使用cp936或者utf8这两种字符集。如果需要国际化支持,那么需选择utf8字符集。

         在生产环境中,需要将默认字符集由cp850调整为utf8(或者调整成支持简体中文的cp936也可以,根据项目情况而定!),将默认语言调整为中文。

         备注:如果想设定ASE的默认语言为中文,必须先将默认字符集设定为utf8,才能设置默认语言为中文。否则会报错。

1查看当前数据库的默认字符集:

执行:

sp_configure "default character set id"

go

查看到Run Value为:2,执行:

select id,name from master..syscharsets where id=2

go

查看到当前字符集为:cp850

 

2将字符集调整为utf8的过程:

将字符集由cp850或者iso_1调整为utf82中方法:图形界面工具和命令行工具。下面分别演示过程。

2.1用图形界面工具调整字符集为utf8

菜单:开始>所有程序>Sybase>Adaptive Server Enterprise>Server Config

 

(或者:

cd /d %sybase%\%sybase_ase%\bin

syconfig

左边的产品列表选择Adaptive Server,点“配置Adaptive Server”按钮,选择要配置的服务器:WIN2003SERVER

 

输入sa的口令:

 

 

进入到配置Adaptive Server窗口

 

选择“语言”按钮,

 

可以看到当前缺省值中的字符集为:cp850。点“字符集”下面的“添加/删除”按钮,

 

从可用字符集列表中选择“Unicode 3.1 UTF-8 Character Set”字符集,点确定。

点“字符集”下面的“设置缺省值”按钮

 

选择“Unicode 3.1 UTF-8 Character Set”字符集,点确定。

 

预览一下,可以看到当前缺省值中字符集已经被改为“utf8”。点确定按钮。返回到“配置Adaptive Server”窗口,点保存按钮。

 

这时候开始安装utf8字符集,并配置默认字符集为utf8。如果ASE中有用户数据库,则此过程需要持续一段时间,因为ASE需要将用户数据库的内容都转化为utf8字符集下的内容。

配置完成后返回到窗口。

 

 

查看ASE的错误日志文件win2003server.log,发现在配置字符集为utf8过程中ASE重启了两次。

00:00000:00031:2010/09/13 13:59:32.67 server  The configuration option 'default character set id' has been changed by 'sa' from '2' to '190'.

00:00000:00031:2010/09/13 13:59:32.67 server  WARNING: ***************************

00:00000:00031:2010/09/13 13:59:32.67 server  Default char set being reconfigured:

00:00000:00031:2010/09/13 13:59:32.67 server         old charset ID = 2    new charset ID = 190

00:00000:00016:2010/09/13 13:59:34.89 server  Shutdown started by user 'sa'. SQL text: shutdown

先将ASE数据库关闭,然后用单用户模式启动数据库

00:00000:00001:2010/09/13 14:00:11.59 server  *** WARNING ******************

00:00000:00001:2010/09/13 14:00:11.59 server  Attempting to change default character set ID from 2 to 190

00:00000:00001:2010/09/13 14:00:11.59 server  ASE booted single user mode - updates allowed to system catalogs

00:00000:00001:2010/09/13 14:00:11.59 server  *** WARNING ******************

此时数据库默认字符集已经调整为utf8,后面的过程为将ASE已有数据库的数据转化为utf8的数据。

00:00000:00001:2010/09/13 14:00:30.96 server  Now loading ASE's new default sort order and character set

00:00000:00001:2010/09/13 14:00:31.07 server  Checking table 'sysobjects' (object ID 1): Logical page size is 4096 bytes.

00:00000:00001:2010/09/13 14:00:31.10 server  

00:00000:00001:2010/09/13 14:00:31.10 server  Checking partition 'sysobjects_1' (partition ID 1) of table 'sysobjects'. The logical page size of this table is 4096 bytes.

00:00000:00001:2010/09/13 14:00:31.15 server  

00:00000:00001:2010/09/13 14:00:31.29 server  Checking table 'systypes' (object ID 4): Logical page size is 4096 bytes.

00:00000:00001:2010/09/13 14:00:31.29 server  

00:00000:00001:2010/09/13 14:00:31.29 server  Checking partition 'systypes_4' (partition ID 4) of table 'systypes'. The logical page size of this table is 4096 bytes.

转化完毕后,已正常模式再次重新启动ASE数据库。

 

启动日志的最后有:

00:00000:00001:2010/09/13 14:30:12.67 server  ASE's default unicode sort order is 'binary'.

00:00000:00001:2010/09/13 14:30:12.67 server  ASE's default sort order is:

00:00000:00001:2010/09/13 14:30:12.67 server         'bin_utf8' (ID = 50)

00:00000:00001:2010/09/13 14:30:12.67 server  on top of default character set:

00:00000:00001:2010/09/13 14:30:12.67 server         'utf8' (ID = 190).

00:00000:00001:2010/09/13 14:30:12.67 server  Master device size: 60 megabytes, or 30720 virtual pages. (A virtual page is 2048 bytes.)

由上可以看出,ASE数据库的默认字符集已经被设置为:utf8

 

检验utf8字符集是否配置成功

cmd下执行: isql –Usa –P –Swin2003server –Jcp936登录ASE数据库。

1> sp_configure "default character set id"

2> go

 Parameter Name                 Default              Memory Used

         Config Value         Run Value            Unit

         Type

 ------------------------------ -------------------- -----------

         -------------------- -------------------- --------------------

         ----------

 default character set id                 2                    0

                  190                  190         id

         static

 

(1 row affected)

(return status = 0)

1> select id,name from master..syscharsets where id = 190

2> go

 id  name

 --- ------------------------------

 190 utf8

 

(1 row affected)

1>

至此,utf8字符集修改成功!

 

2.2用命令行工具调整字符集为utf8

检查当前ASE数据库中是否安装了utf8字符集?

select id,name from master..syscharsets

where name='utf8'

go

如果有返回结果,则证明ASE服务器已经安装了utf8字符集。utf8字符集的id一般为190

如果未安装字符集utf8,则在cmd下执行:

cd /d %sybase%\charsets\utf8

charset -Usa -P -Swin2003server binary.srt utf8    sa的密码为空,服务名称为:win2003server

反馈信息如下:

C:\sybase\charsets\utf8>charset -Usa -P -Swin2003server binary.srt utf8

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

 

再次检查当前ASE数据库中是否安装了utf8字符集?

select id,name from master..syscharsets

where name='utf8'

go

反馈信息如下:

1> select id,name from master..syscharsets

2> where name='utf8'

3> go

 id  name

 --- ------------------------------

 190 utf8

 

(1 row affected)

说明已经安装了utf8字符集。

 

配置默认字符集为:utf8

sp_configure “default character set id”,190

go

 

之后重启ASE数据库两次

 

检验utf8字符集是否配置成功

1> sp_configure "default character set id"

2> go

 Parameter Name                 Default              Memory Used

         Config Value         Run Value            Unit

         Type

 ------------------------------ -------------------- -----------

         -------------------- -------------------- --------------------

         ----------

 default character set id                 2                    0

                  190                  190         id

         static

 

(1 row affected)

(return status = 0)

1> select id,name from master..syscharsets where id = 190

2> go

 id  name

 --- ------------------------------

 190 utf8

 

(1 row affected)

1>

至此,utf8字符集修改成功!

 

3将数据库默认语言调整为中文

请确保在Sybase ASE15.0.3程序文件安装过程中,已经选择了“Chinese Language Module”模块。如果没有选择,可以重新执行安装程序,添加这个模块。

 

 

3.1用图形界面工具添加并设置中文为默认语言

菜单:开始>所有程序>Sybase>Adaptive Server Enterprise>Server Config

 

(或者:

cd /d %sybase%\%sybase_ase%\bin

syconfig

左边的产品列表选择Adaptive Server,点“配置Adaptive Server”按钮,选择要配置的服务器:WIN2003SERVER

 

输入sa的口令:

 

 

进入到配置Adaptive Server窗口

 

选择“语言”按钮,

 

可以看到当前缺省值中的语言为:us_english。点“语言”下面的“添加/删除”按钮,

 

在安装语言窗口中添加中文语言Chinese。点确定返回到语言选项窗口,点击“语言”下的“设置缺省值”按钮,

 

在更改缺省语言窗口中选择Chinese,点确定,返回到语言选项窗口,

 

 

点确定,再点保存按钮。进行安装语言的过程中,

 

这时候开始安装中文语言。安装过程会将sysmessages系统表中添加中文语言信息。

配置完成后返回到窗口。点退出则完成默认语言的配置。

 

3.2用命令行工具添加并设置中文为默认语言

ASE服务器中安装中文语言:

cd /d %sybase%\%sybase_ase%\bin

langinst -Usa -P -Swin2003server chinese   sa的密码为空,数据库服务名为:win2003server

反馈信息为:

C:\sybase\ASE-15_0\bin>langinst -Usa -P -Swin2003server chinese

Loading datetime information from file C:\sybase/ASE-15_0/locales/chinese/common

.loc.

Loading system messages from file C:\sybase/ASE-15_0/locales/chinese/server.loc.

 

9075 Messages processed.

Loading complete.

Summary: 0 deleted, 8640 inserted, 0 updated, 435 duplicates,   0 unsuccessful.

 

isql设定默认语言为中文:

cmd下执行: isql  -Usa –P –Swin2003server –Jcp936 登录ASE数据库。

 

检查中文语言是否已经成功安装?

select langid,name from master..syslanguages

go

如果返回结果为1行,则说明中文语言已经成功安装了。

 

配置ASE数据库默认语言为中文:

sp_configure "default language id",1

go

 

 

 

3.3验证ASE默认语言为中文

isql登录ASE

isql –Usa –Jcp936           (当前数据库的字符集为utf8,客户端连接时需要使用cp936,否则中文会出现乱码)

select @@language

如果返回结果为:Chinese,则表示默认语言已经修改为中文了。

 

3.4修改登录账号的默认语言为中文

查看登录账号的默认语言:

sp_displaylogin sa

go

Suid: 1

登录名: sa

全名:

缺省数据库: master

缺省语言:

自动登录脚本:

已配置的特权:

        sa_role (default ON)

        sso_role (default ON)

        oper_role (default ON)

        sybase_ts_role (default ON)

        mon_role (default ON)

        js_admin_role (default ON)

被锁定:

最后口令改变日期: 十一月 27 2009 12

口令截止间隔: 0

口令到期: NO

最小口令长度: 6

登录失败次数的最大值: 0

当前已失败的登录次数:

请用 AUTH_DEFAULT 进行鉴定

登录口令加密:SHA-256

上一次登录日期:

(return status = 0)

 

修改登录的默认语言为中文:

sp_modifylogin sa,deflanguage,chinese

go

 

再次检验登录账号的默认语言:

1> sp_displaylogin sa

2> go

Suid: 1

登录名: sa

全名:

缺省数据库: master

缺省语言: chinese

自动登录脚本:

已配置的特权:

        sa_role (default ON)

        sso_role (default ON)

        oper_role (default ON)

        sybase_ts_role (default ON)

        mon_role (default ON)

        js_admin_role (default ON)

被锁定:

最后口令改变日期: 十一月 27 2009 12

口令截止间隔: 0

口令到期: NO

最小口令长度: 6

登录失败次数的最大值: 0

当前已失败的登录次数:

请用 AUTH_DEFAULT 进行鉴定

登录口令加密:SHA-256

上一次登录日期:

(return status = 0)

 ————————————————————————————————————
——— 本文为andkylee个人原创,请在尊重作者劳动成果的前提下进行转载;
——— 转载务必注明原始出处 : http://www.dbainfo.net
——— 关键字:sybase ase15.0.3 默认字符集 语言 中文 utf8 cp936
————————————————————————————————————

  • 本文链接地址:http://www.sybrepair.com/sybase-ase-1503-character-set-utf8-chinese-language.htm
  • 本文为dbainfo个人原创,请在尊重作者劳动成果的前提下进行转载;
  • 转载务必注明原始出处 : Sybase数据库技术,数据库恢复专家
  • 对《Sybase ASE 15.0.3 for windows 安装中文语言支持、配置字符集》有何疑问或见解,请在本文下方发表;
  • 对网站还有其他问题或建议,请提交在留言板,谢谢!
  • 目前还没有任何评论.
    :wink: :twisted: :roll: :oops: :mrgreen: :lol: :idea: :evil: :cry: :arrow: :?: :-| :-x :-o :-P :-D :-? :) :( :!: 8-O 8)