文档库 最新最全的文档下载
当前位置:文档库 › sybase修改字符集

sybase修改字符集

sybase修改字符集
sybase修改字符集

Sybase数据库

进入isql模式:

在dos界面中输入:isql –Usa –P111111 –Szhouyx

分别代表用户名密码服务器名

修改字符集

Sybase修改字符集(cp850 to cp936)

最重要的命令是:C:\sybase\charsets \cp936>charset -Usa -Psybase -Sdiren binary.srt cp936

新中大软件字符集转换为cp936技术说明

一、为什么要修改现在使用的数据库的字符集?

安装ASE数据库默认的字符集为CP850,其对于中文的字符集(GB2312)比较少,很多汉字无法保存,导致在备份恢复时出错。

二、替换数据库字符集比较好的时间是什么时候?

建议在业务不繁忙进行该项工作。

三、确认修改数据库字符集的时间后,你的重要工作是什么?

注意:全部备份你的数据库,并且你要确保你的备份是有效的。

四、修改数据库字符集的整个思路是什么?

1、确认服务器停止对外服务前,完整地备份你的数据库。

2、将原来cp850或iso-1字符集的数据库数据bcp out到你指定的文件目录下。

3、重新构造你的服务器,配置你的服务器字符集为cp936。

4、重新建立并规划你的数据库。

5、将bcp out出来的数据bcp in 到新的数据库里(该数据库的字符集环境为cp936)。

6、修改并配合应用程序使其能够正常运行。确保对客户端最小化影响。

五、修改的操作步骤

以下假设:

Sybase server 名:asesrv (在Dsedit中设置)

Sybase sa的口令:sybase

生产库名:test

操作的目录:d:\shen

建议:按照以上假设,只需要将所有的生产库名test替换成你的生产库名字!

1、停止数据库服务器对外服务,注意并不是停止你的服务器的服务。检查一下master库的大小,不能小于40M。

2、备份你的数据库,注意是全部备份。建议你将你的数据库做一次DBCC。

1>dump database test to “d:\shen\test.dmp”

2>go

3、生成批处理文件

3.1 生成用户表BCP OUT批处理文件bcpout.bat

3.1.1 修改bcpout.txt文件,使其符合你的实际情况,bcpout.txt文件内容为:

select 'bcp test..' + name + ' out ' + '"' + 'd:\shen\' + name + '.dat' + '"' + ' -c -Usa -Psybase -Sasesrv' from sysobjects where type='U' order by name

go

3.1.2 在DOS命令下执行以下命令:

? d:\ren\>isql -U sa -Psybase -Sasesrv -Dtest -ibcpout.txt -obcpout.bat

3.1.3 编辑结果文件bcpout.bat,将开头和结尾多余部分去掉,并查找到“GG_XTHP”,将该行删除(系统帮助表,因为包含有Text字段不能正常bcp in/out)。

3.2 生成用户表BCP IN批处理文件bcpin.bat

3.2.1 修改bcpin.txt文件,使其符合你的实际情况,bcpin.txt文件内容为:

select 'bcp test..' + name + ' in ' + '"' + 'd:\shen\' + name + '.dat' + '"' + ' -c -Usa -Psybase -Sasesrv' from sysobjects where type='U' order by name

go

3.2.2 在DOS命令下执行以下命令:

? d:\ren\>isql -U sa -Psybase -Sasesrv -Dtest -ibcpin.txt -obcpin.bat

3.2.3 编辑结果文件bcpin.bat,将开头和结尾多余部分去掉,并查找到“GG_XTHP”,将该行删除(系统帮助表,因为包含有Text字段不能正常bcp in/out)。

4、导出数据

? 在DOS命令下执行4.1.3的结果文件bcpout.bat,得到数据。

? d:\shen\>bcpout > bcpout_error.txt

? 导出结束后,检查输出文件bcpout_error.txt,看看有没有错误。

5、采用DBArtisan 7.2.1工具Extract以下文件,请严格按照以下顺序。

5.1 Check_Constraints.sql(导出后drop)

5.2 Foreign_keys.sql(导出后drop)

5.3 Indexes.sql(导出后drop)

5.4 Primary_Keys.sql (导出后drop),注意:可能出现FP_SNJZFP、SB_DZSBQKB不能drop,不必理会。

5.5 Procedures.sql

5.6 Triggers.sql(导出后drop)

5.7 Tables.sql

5.8 Views.sql

5.9 Sybase账号,导出可以参考以下命令:

? D:\shen\>bcp master..syslogins out syslogins.dat -c -Usa -Psybase -Sasesrv -F4

6、在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

说明:很多时候应用程序报错,客户端和服务器端字符集不相匹配。

7、查看原来数据库设备使用情况(主要是起参考作用),并做详细记载:

1>sp_helpdb test

2>go

检查点:确认你的以上准备工作已经全部做好。

8、在Sybase Central中将原来的生产数据库删除。

**************************************************************

经过测试确认:数据库设备不需要删除,Sybase服务不需要重建!

注意:如果决定不重建Sybase服务,请直接跳过第9步直接到第10步!

**************************************************************

9、删除生产库设备,删除注册表相关键,重建Sybase服务。

9.1 删除生产库设备

9.2 停止Sybase服务,运行Sybase服务器配置工具,Remove Adaptive Server删除服务器diren,删除生产库物理文件,删除C:\sybase\data目录下文件:master.dat,sybprocs.dat。

9.3 清理注册表信息(为了保证本次修改后的数据库服务器asesrv和原来的一样,将原来的相关服务器asesrv删除)。

\\HKEY_LOCAL_MACHINE\SOFTWARE\SYBASE\Server\DIREN

\\HKEY_LOCAL_MACHINE\SOFTWARE\SYBASE\Server\DIREN_BS

\\HKEY_LOCAL_MACHINE\SOFTWARE\SYBASE\Server\DIREN_HS

\\HKEY_LOCAL_MACHINE\SOFTWARE\SYBASE\Server\DIREN_MS

\\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session

Manager\Environment下相关键。

\\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services下以下键:

SYBSQL_DIREN

?? SYBXPS_DIREN_XP

?? SYBBCK_DIREN_BS

?? SYBMON_DIREN_MS

?? SYBHIS_DIREN_HS

? ControlSet001以及ControlSet002等中的CurrentControlSet键中的相应键也要删除(如果有的话)。

9.4 运行Sybase服务器配置工具重新build server,使用原来数据库服务器名字。

9.5 重新设置服务器参数,调整master库大小,增加tempdb库大小。

10、将数据库的缺省字符集设置为cp936:

C:\>cd sybase

C:\sybase>cd charsets

C:\sybase\charsets>cd cp936

C:\sybase\charsets\cp936>charset -Usa -Psybase -Sasesrv 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

11、接着是将添加的cp936设置为你的缺省值。方法是:

C:\sybase\charsets\cp936>isql -Usa -Psybase -Sasesrv

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

12、将刚才新build的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)

13、重新启动服务器两次(参考使用DOS命令net start SYBSQL_asesrv)。第一次启动报错“服务器SYBSQL_asesrv不能启动,请检查它的配置”很正常,第二次正确启动,表明你的设置成功了。

14、在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”。

? 参考步骤6,确认服务器端和客户端字符集均已修改正确。

15、在Sybase Central中,重新建立新的空数据库,仔细规划好生产数据库数据设备和日志设备的大小。以前觉得数据库设备分配不合理的,在这时你可以重新考虑设备的分配。

16、使用先前准备好的建库对象脚本建立表及其其他对象信息。将先前bcp出的数据bcp in 到新的数据库中去,请严格按照如下顺序。索引在你数据导入完成后执行,效率会更高。

注意:生产库数据库选项“允许选择进入/批量复制”、“缺省允许为空”要打勾;每做一步后,查看一下输出文件,看看有没有错误。

16.1 D:\shen\>isql -Usa -Psybase -Sasesrv -D test -i Tables.sql -o Tables_error.txt

16.2 D:\shen\>isql -Usa -Psybase -Sasesrv -D test -i Views.sql -o Views_error.txt

16.3 D:\shen\>bcpin > bcpin_error.txt

16.4 D:\shen\>isql -Usa -Psybase -Sasesrv -D test -i Primary_Keys.sql -o Primary_Keys_error.txt

16.5 D:\shen\>isql -Usa -Psybase -Sasesrv -D test -i Foreign_keys.sql -o Foreign_keys_error.txt

16.6 D:\shen\>isql -Usa -Psybase -Sasesrv -D test -i Indexes.sql -o Indexes_error.txt

16.7 D:\shen\>isql -Usa -Psybase -Sasesrv -D test -i Check_Constraints.sql -o Check_Con_error.txt

16.8 D:\shen\>isql -Usa -Psybase -Sasesrv -D test -i Procedures.sql -o Procedures_error.txt

16.9 D:\shen\>isql -Usa -Psybase -Sasesrv -D test -i Triggers.sql -o Triggers_error.txt

16.10 将logins bcp进入到系统表,保证原来的合法帐号被成功加入。注意:首先要设置/取消…allow updates to system tables?。

? D:\shen\> isql -Usa -Psybase -Sdiren

? 1> sp_configure "allow updates to system tables", 1

? 2>go

? 1> delete from syslogins where suid >=6????? //删除非SYBASE系统用户。

? 2>go

? D:\shen\>bcp master..syslogins in syslogins.dat -c -Usa -Psybase -Sdiren

? D:\shen\> isql -Usa -Psybase -Sdiren

? 1> sp_configure "allow updates to system tables", 0

? 2>go

16.11 增加用户别名

16.11.1 修改syslogins.txt文件,使其符合你的实际情况,syslogins.txt文件内容为:

use master

go

select 'sp_addalias ' + name + ', dbo' + '

go'

from syslogins where suid>3

go

16.11.2 在DOS命令下执行以下命令:

? D:\ren>isql -Usa -Psybase -isyslogins.txt -osysloginsalias.txt

16.11.3 编辑结果文件sysloginsalias.txt,将开头和结尾多余部分去掉。

16.11.4在DOS命令下执行以下命令(注意增加了-Dtest):

? D:\ren>isql -Usa -Psybase -Dtest -isysloginsalias.txt -osysloginsalias_error.txt

17、取消生产库数据库选项“允许选择进入/批量复制” 、“缺省允许为空”。

六、客户端的修改

注:也可以设置好注册表信息后,生成一个文件,由各个操作员自己执行即可。

在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”。

6.附:如何安装cp936字符集

以在Windows平台安装cp936字符集为例,说明如何安装使用服务器中没有被默认安装的字符集。(在ASE 12.5.0.3版本中安装GB18030字符集的方法类似)

(这里SYBASE的安装路径为c:\sybase)

1.c:\>cd \sybase\charsets\cp936

2.c:\sybase\charsets\cp936> charset -Usa -Psa_pass -Sserver_name binary.srt cp936

3.在SQL环境中

1>select name,id from syscharsets

2>go

找到name为cp936对应的id(假设为171)

4.设置缺省字符集

1>sp_configure "default character set id",171

2>go

5.重启server两次

(注:第一次启动后,server会自动宕掉,需要第二次重启后才能使用)

ORACLE字符集

Oracle 的字符集 1、字符集基本概念 Character set 字符集是某系统支持的所有抽象字符(各种文字和符号的总称)的集合,包括各国家文字、标点、图形、数字等。Oracle字符集命名规则: <语言><比特位数><编码> ZHS16GBK表示采用GBK编码格式、16bit、简体中文字符集. Character Encoding 字符编码指怎么将字符变成字节用于保存、读取和传输。 单字节编码 单字节7位字符集,可定义128个字符,最常用的为US7ASCII,oracle最早支持的编码方案 单字节8位字符集,可定义256个字符,适合欧洲大部分国家 WE8ISO8859P1(西欧、8位) 多字节编码 变长多字节编码,某些字符用一个字节,某些字符用两个或多个字符表示,变长多字节编码常用于对亚洲语言的支持例如日语、汉语、印语等。AL32UTF8(AL 代表ALL,指适用于所有地区)、zhs16cgb231280 定长多字节编码,每一个字符都使用固定长度字节的编码方案,目前oracle 唯一支持的定长多字节编码是AF16UTF16,也是仅用于国家字符集。

Unicode 字符集 几乎包含人类所有可用的字符,每年还在不断的增加,可以看作是一种通用的字符集。它将全世界所有的字符统一化,统一编码,不会再出现字符不兼容和字符转换的问题。 UTF-16是unicode的16位编码方式,是一种定长多字节编码,用2个字节表示一个unicode字符。 UTF-8 是unicode 的8 位编码方式,是一种变长多字节编码,这种编码可以用1、2、3个字节表示一个unicode字符,AL32UTF8,UTF8、UTFE是UTF-8编码字符集 字符集超级 当一种字符集A的编码数值包含所有另一种字符集B的编码数值,并且两种字符集相同编码数值代表相同的字符时,则字符集A是字符集B的超级或称字符集B是字符集A的子集。Oracle8i和oracle9i官方文档资料中有子集-超级对照表(subset-superset pairs)例如:WE8ISO8859P1是WE8MSWIN1252的子集。由于US7ASCII是最早的Oracle数据库编码格式因此有许多字符集是US7ASCII的超集,例如WE8ISO8859P1、ZHS16CGB231280、ZHS16GBK都是US7ASCII的超集。 2、Oracle字符集基本原理 Oracle 通过NLS_LANG=language_territory.charset 设定对语言和字符集的支持,如AMERICAN_AMERICA.AL32UTF8,其实真正影响数据库字符集是第三部分。两个数据库的NLS_LANG只要第三部分一样就可以相互导入导出数据,前面影响的只是提示信息是中文还是英文。在一个创建好的数据库中这个参数是分部分存

Sybase数据库教程

系统维护员培训手册 1 第一章 Sybase概述 第一节 C/S简介 CS(Client/Server)结构是传统的网络集中共享式数据库的扩充。在CS结构中,应用程序(客户)在工作站上运行应用程序进行数据处理,服务器程序运行于服务器上以响应客户的请求并维护数据的一致性。CS结构可以显著减少不必要的网络数据传输。 一、CS和文件服务器的区别是: 文件服务器没有计算能力,它不了解数据本身的任何东西,它仅仅用于存储数据,文件服务器可以想象成一台用很长的电缆(网络)与用户计算机相连的硬 盘驱动器。CS的工作方式是客户端发出一个请求(命令),通过网络传送到服务 器,服务器根据这个命令进行计算,把计算后的结果传送给客户端。而文件服务 器的工作模式是工作站从服务器上取得应用程序运行,进行数据处理时到服务器 取数据,然后从所有的数据记录中找到要处理的内容,进行运算,最后才得出结 果。 二、客户/服务器模型的主要特点如下: ●客户进程和服务器进程可以由LAN或广域网(WAN)联结。它们都可以在同 一台计算机上运行。 ●用于在客户和数据库服务器之间通信的基本语言是通过结构化的查询语言 (Structured Query Language)实现的。 三、发展过程 C/S结构是数据库发展的一个过程,跟随计算机的计算机系统结构由集中式主机系统发展到客户/服务器系统以及现在分布式的多层网络系统,数据库系 统的体系结构也大体经历了三种发展形式: ●集中式的主机/终端结构 主机/终端系统中主机运行DBMS及数据库应用,终端仅提供数据显示。 ●两层的客户/服务器结构 在这种结构中,服务器执行数据库的存储逻辑和事务逻辑,客户端执行应用逻辑并提供用户界面。他们从系统上进行划分,均衡负载。 ●三层(或多层)体系结构 这种体系可以看作是客户/服务器结构和Internet(国际互联网络)以及Intranet应用体系结构相结合的产物,它是对客户/服务器的继承和发展。 Internet应用是浏览器/WEB服务器/数据库服务器的三层体系结构。 四、Client/Server模式概述

MySQL字符集修改

MySQL字符集修改初步整理 技术统括部 李成兴 2011-03-28 目录 0、背景 (2) 1、查找MySQL的cnf文件的位置 (3) 2、https://www.wendangku.net/doc/f510224266.html,f的拷贝 (3) 3、修改https://www.wendangku.net/doc/f510224266.html,f (4) 4、重新启动MySQL (5) 5、查看字符集设置 (5) 6、总结 (6)

0、背景 最近在构筑OpenStandia的Demo环境,使用的Linux+MySQL+JBoss的组合方式,部署完成以后,在客户端访问的时候,有些日文字和汉字显示为乱码。开始以为是程序的问题或者是OS语言包安装问题,最后发觉都不是,原来是MySQL字符集的设置问题,还是我等对MySQL 了解不够呀。下面就是针对Linux OS上MySQL字符集修改所做的初步整理,肯定有需要完善的地方,只能以后一步一步来做了。

1、查找MySQL的cnf文件的位置 find / -iname '*.cnf' –print 2、https://www.wendangku.net/doc/f510224266.html,f的拷贝 如果没有发现既存的https://www.wendangku.net/doc/f510224266.html,f文件,拷贝 https://www.wendangku.net/doc/f510224266.html,f、https://www.wendangku.net/doc/f510224266.html,f、https://www.wendangku.net/doc/f510224266.html,f、https://www.wendangku.net/doc/f510224266.html,f其中的一个到/etc下,命名为https://www.wendangku.net/doc/f510224266.html,f cp /usr/share/mysql/https://www.wendangku.net/doc/f510224266.html,f /etc/https://www.wendangku.net/doc/f510224266.html,f 查询结果中有https://www.wendangku.net/doc/f510224266.html,f,那就直接修改了。

3、修改https://www.wendangku.net/doc/f510224266.html,f vi /etc/https://www.wendangku.net/doc/f510224266.html,f 在[client]下添加 default-character-set=utf8 在[mysqld]下添加 default-character-set=utf8

修改oracle字符集

测试的时候,本机oracle安装采用了utf8字符集,而项目的要求是gbk 字符集,为了防止以后有不同字符集数据信息导入导出的问题,整理以下文档。 修改oracle字符集新装了oracle,装为AL32UTF8格式,无奈一个工程导出包是ZHS16GBK格式,想了想办法转换,以下是学习 一、什么是oracle字符集 Oracle字符集是一个字节数据的解释的符号集合,有大小之分,有相互的包容关系。ORACLE 支持国家语言的体系结构允许你使用本地化语言来存储,处理,检索数据。它使数据库工具,错误消息,排序次序,日期,时间,货币,数字,和日历自动适应本地化语言和平台。 影响oracle数据库字符集最重要的参数是NLS_LANG参数。它的格式如下: NLS_LANG = language_territory.charset 它有三个组成部分(语言、地域和字符集),每个成分控制了NLS子集的特性。其中: Language 指定服务器消息的语言,territory 指定服务器的日期和数字格式,charset 指定字符集。如:AMERICAN _ AMERICA. ZHS16GBK 从NLS_LANG的组成我们可以看出,真正影响数据库字符集的其实是第三部分。所以两个数据库之间的字符集只要第三部分一样就可以相互导入导出数据,前面影响的只是提示信息是中文还是英文。 二、如何查询Oracle的字符集 很多人都碰到过因为字符集不同而使数据导入失败的情况。这涉及三方面的字符集,一是oracel server端的字符集,二是oracle client端的字符集;三是dmp文件的字符集。在做数据导入的时候,需要这三个字符集都一致才能正确导入。 1、查询oracle server端的字符集 有很多种方法可以查出oracle server端的字符集,比较直观的查询方法是以下这种:SQL>select userenv(‘language’) from dual; 结果类似如下:AMERICAN _ AMERICA. ZHS16GBK (本机结果SIMPLIFIED CHINESE_CHINA.AL32UTF8) 2、如何查询dmp文件的字符集

SybaseIQ数据备份恢复命令

1引言 本文档描述如何对Sybase IQ数据库的数据进行备份、恢复、迁移等操作指导,供售前和售后人员使用。本文档是售前和售后人员向运营商推广、使用本功能最重要的参考依据。2术语和缩略语 2.1术语 2.2缩略语 3简介 Sybase IQ(或Multiplex IQ)的数据备份包括Sybase IQ 数据(IQ存储)和基础SQL Anywhere 数据库(Catalog 存储)备份。其备份方式分为BACKUP/RESTORE命令的全库备份/恢复,以及数据导入/导出应用(重定向、insert…location方式的数据迁移)。本文档将分别描述三种方式操作步骤。 4Sybase IQ的数据备份、恢复 4.1 全库备份、恢复 全库备份、恢复采用BACKUP/RESTORE命令(必须具有dba权限),此种方法仅备份已提交的数据。借助提交和自动检查点开始备份。备份程序在此时确定要备份哪些数据。该程序备份截至此检查点时间为止的数据库当前快照版本。在此检查点操作发生时尚未提交的所有数据不会纳入备份范围。 BACKUP 语句 说明在一个或多个存档设备上备份Sybase IQ 数据库。 语法BACKUP DATABASE [ backup-option… ] TO archive_device [ archive-option... ] …[ WITH COMMENT string ] 参数backup-option: { READWRITE FILES ONL Y | READONL Y dbspace-or-file [, … ] } CRC { ON | OFF } ATTENDED { ON | OFF } BLOCK FACTOR integer

搞懂oracle字符集

搞懂oracle字符集 作为一个ORACLE DBA,在工作中会经常处理由于字符集产生的一些问题。但是当真正想写一些这方面的东西时,却突然又没有了头绪。发了半天呆,还是决定用两个字符集方面的例子作为切入点,倒不失为一个头绪,说不定在实验的过程中,问题就会一个接着一个的浮现出来。 现在,让我们切入正题。 我用的数据库是oracle10.2.0.3,数据库字符集是al32utf8。 客户端就是同一台机器的windows xp. 下面是演示的例子: SQL>drop table test purge; Table dropped. SQL>create table test(col1number(1),col2varchar2(10)); Table created. --session1设置客户端字符集为zhs16gbk(修改注册表nls_lang项的characterset为zhs16gbk)向表中插入两个中文字符。 SQL>insert into test values(1,'中国');--1为session1的标记 1row created. SQL>commit; Commit complete. --session2设置客户端字符集al32utf8(修改注册表nls_lang项的characterset为al32utf8),与数据库字符集相同。向表中插入两个和session1相同的中文字符。 SQL>insert into test values(2,'中国');--2为session2的标记 1row created. SQL>commit; Commit complete. --session1 SQL>select*from test; COL1COL2 ------------------------------ 2??? 1中国

sybase基本操作

SYBASE基本操作 一、启动数据库 1、ps -ef | grep dataserver 查看sybase进程, Sybase有数据库进程和备份进程, 若都没看到则需要手动启动,进入sybase安装目录$sybase/ASE-15_0/install 启动数据库和备份进程 # ./startserver -f RUN_LINUXMZC --启动数据库RUN_”SYBASENAME”#./startserver -f RUN_LINUXMZC_BS --启动备份服务“RUN_backupserve” 启动后也可用#showserver查看 2、登录数据库 数据库启动后使用#isql -Usa -P -S 登录数据库, 注:sybase默认只有一个用户sa,默认密码NULL

二、sybase基本操作 1、查询数据库版本 >select @@version >go 注:isql中的命令都需要go来执行,如果发现写错了,可以用reset重新输入 2、查询数据库信息 >sp_helpdb 显示所有数据库和基本信息 3、查寻空间使用情况 >use basename >go >sp_spaceused >go

4、性能监控 使用指令sp_sysmon 格式:>sp_sysmon “hh:mm:ss”,model_name,表示监控指定时间指定模块,缺省为所有模块 1、内核管理(kernal ) 10、任务管理(taskmgmt) 2、应用管理(appmgmt) 11、监视器访问SQL的执行(monaccess) 3、数据缓存管理(dcache) 12、并行查询管理(parallel) 4、ESP管理(esp) 13、过程缓存管理(pcache) 5、索引管理(indexmgmt) 14、恢复管理(recovery) 6、锁管理(locks) 15、事务管理(xactmgmt) 7、内存管理(memory) 16、磁盘I/O管理(diskio) 8、元数据高速缓存管理(mdcache ) 17、工作进程管理(wpm) 9、事务概要(xactsum) 18、网络I/O管理(netio)

查看Oracle字符集及如何修改字符集

查看Oracle字符集及如何修改字符集 文章分类:数据库 一、什么是oracle字符集 Oracle字符集是一个字节数据的解释的符号集合,有大小之分,有相互的包容关系。ORACLE 支持国家语言的体系结构允许你使用本地化语言来存储,处理,检索数据。它使数据库工具,错误消息,排序次序,日期,时间,货币,数字,和日历自动适应本地化语言和平台。 影响oracle数据库字符集最重要的参数是NLS_LANG参数。 它的格式如下: NLS_LANG = language_territory.charset 它有三个组成部分(语言、地域和字符集),每个成分控制了NLS子集的特性。 其中: Language 指定服务器消息的语言,territory 指定服务器的日期和数字格式,charset 指定字符集。如:AMERICAN _ AMERICA. ZHS16GBK 从NLS_LANG的组成我们可以看出,真正影响数据库字符集的其实是第三部分。 所以两个数据库之间的字符集只要第三部分一样就可以相互导入导出数据,前面影响的只是提示信息是中文还是英文。 二.查看数据库字符集 这涉及三方面的字符集, 一是oracel server端的字符集; 二是oracle client端的字符集; 三是dmp文件的字符集。 在做数据导入的时候,需要这三个字符集都一致才能正确导入。 1、查询oracle server端的字符集 有很多种方法可以查出oracle server端的字符集,比较直观的查询方法是以下这种: SQL>select userenv(‘language’) from dua l; 结果类似如下:AMERICAN _ AMERICA. ZHS16GBK 2、如何查询dmp文件的字符集 用oracle的exp工具导出的dmp文件也包含了字符集信息,dmp文件的第2和第3个字节记录了dmp文件的字符集。如果dmp文件不大,比如只有几M或几十M,可以用UltraEdit 打开(16进制方式),看第2第3个字节的内容,如0354,然后用以下SQL查出它对应的字符集: SQL> select nls_charset_name(to_number('0354','xxxx')) from dual; ZHS16GBK 如果dmp文件很大,比如有2G以上(这也是最常见的情况),用文本编辑器打开很慢或者完全打不开,可以用以下命令(在unix主机上): catexp.dmp |od -x|head -1|awk '{print $2 $3}'|cut -c 3-6 然后用上述SQL也可以得到它对应的字符集。 3、查询oracle client端的字符集 这个比较简单。 在windows平台下,就是注册表里面相应OracleHome的NLS_LANG。还可以在dos窗口里面自己设置,比如: setnls_lang=AMERICAN_AMERICA.ZHS16GBK 这样就只影响这个窗口里面的环境变量。

Sybase数据库管理手册

Sybase数据库管理手册

目录 Sybase 数据库安装说明 (3) 一、安装前准备工作 (3) 二、安装主程序 (3) 三、安装后打补丁 (6) 四、重启后创建Sybase服务 (6) 五、字符集设置 (11) 六、还原HIS数据库 (13) 七、Sybase服务不能启动时 (19) 八、配置参数 (21) 客户端安装说明 (29) 一、安装客户端 (29) 二、配置客户端 (29) Sybase 数据库的备份、恢复 (29) Sybase 数据库维护 (30) Sybase数据常用命令的使用 (31)

Sybase 数据库安装说明 一、安装前准备工作 ●先将Sybase安装文件夹(ASESERVER)拷贝到要安装的机器硬盘上。(此文件夹下文中都 用d:\Tooll\ASESERVER) ●将Sybase的补丁拷贝到要安装的机器硬盘上 ●处理安装时的字符集问题(防止安装时出现乱码) 对于不同的Windows版本的操作系统Sybase都要进行字符集文件的修改,下面是不同 二、安装主程序 ●进入安装程序 完成安装前的准备工作后就可以双击D:\TOOLS\ASESERVER\setup.exe文件进入Sybase安装程序。

●确定安装目录 选择安装目录是不要选择有磁盘阵列或做了Raid的盘,也不要选择操作系统所在的磁盘。 ●选择安装组件 ●安装总结

在总结处要注意所需空间是不是小于可用空间,如果不是则要将安装的磁盘清除一些文件来达到所需空间。单击“下一步”进行安装进行状态 ●安装进度 ●录入注册信息

●重启提示 完成安装后提示是否重新启动机器,按否不重启机器。然后将补丁拷贝到安装目录。 三、安装后打补丁 将\ASE补丁\ebf11574\Server目录下的所有文件拷贝到Sybase安装目录下例如安装目录为C:\Sybase 将C:\sybase\shared-1_0\jre1.2.2\lib\font.properties.zh.NT5.2文件名改名,操作系统与文件名的配对关系参考安装前准备工作的配对关系。 四、重启后创建Sybase服务 ●重启机器后进入Sybase安装程序确定提示按“否”后进行Windows操作系统 ●进行操作系统的运行窗口录入CMD进入Dos操作界面

修改AIXUnixLinuxHP-UX 系统中文字符集

AIX/Unix/Linux/HP-UX 系统中文字符集 在运行环境Unix与Linux系统中遇到中文乱码,在查看后台运行日志时很不方便,于是在网上查看解决方法,经过以下内容可以解决这个问题。希望看到此篇的人能解决此题! 针对不同系统可以选用字符集如下: AIX zh_CN.IBM-eucCN Linux zh_CN.gb2312 Unix Chinese(Simplified EUC)IBM_eucCN, HP-UX zh_CN.hp15CN, Solaris zh_CN.EUC(zh) 以下是这些系统的字集命令: locale -a 查看本机的所有字符集 echo $LANG 查看当前使用的字符集 export LANG=字符集设置字符集 备注:export LANG=字符集只是对当前用户当时设置有效,为了永久的保存下来,可以通过以下设置可以实现: pwd 查看当前目录 在系统根目录下: more .profile 查看.profle文件的内容 vi .profile 编辑.profile LANG="zh_CN.hp15CN" 添加对应的编码 . ./.profile 执行(保存)

echo $LANG 查看 编辑/etc/sysconfig/language文件,将该文件中的rc_lang=" "修改成rc_lang = "zh_CN.hp15CN"。然后在命令行中运行SuSEconfig命令激活更改。当运行完毕后注意一定要注销并重新登录,此时再运行locale时,就能看到当前系统的字符集是zh_CN.hp15CN了。 在HP UNIX上运行EOS时出现乱码的问题,首先怀疑HP UNIX上是否存在简体中文字符集,在HP UNIX下怎么安装简体中文字符集,将平时积累的经验整理一下,希望能给大家提供一些参考: 我们先从core os(hpux安装盘)上找到"CDE-ChineseS Simplified Chinese CDE Environment"软件安装包 1:插入core os光盘 2:mount /dev/dsk/cXtXdX /cdrom(/dev/dsk/cXtXdX是光盘所在的设备文件) 3:swinstall -s /cdrom(选择软件包CDE-ChineseS并安装) 4:检查/etc/rc.config.d/LANG的并按照以下内容进行修改: export LANG=zh_CN.hp15CN

Oracle 导入导出字符集乱码问题

Oracle 导入导出字符集乱码问题 导出/导入与字符集 进行数据的导入导出时,我们要注意关于字符集的问题。在EXP/IMP过程中我们需要注意四个字符集的参数:导出端的客户端字符集,导出端数据库字符集,导入端的客户端字符集,导入端数据库字符集。 我们首先需要查看这四个字符集参数。 查看数据库的字符集的信息: SQL> select * from nls_database_parameters; PARAMETER VALUE ------------------------------ -------------------------------------------------------------------------------- NLS_LANGUAGE AMERICAN NLS_TERRITORY AMERICA NLS_CURRENCY $ NLS_ISO_CURRENCY AMERICA NLS_NUMERIC_CHARACTERS ., NLS_CHARACTERSET ZHS16GBK NLS_CALENDAR GREGORIAN NLS_DATE_FORMAT DD-MON-RR NLS_DATE_LANGUAGE AMERICAN NLS_SORT BINARY NLS_TIME_FORMAT HH.MI.SSXFF AM NLS_TIMESTAMP_FORMAT DD-MON-RR HH.MI.SSXFF AM NLS_TIME_TZ_FORMAT HH.MI.SSXFF AM TZH:TZM

NLS_TIMESTAMP_TZ_FORMAT DD-MON-RR HH.MI.SSXFF AM TZH:TZM NLS_DUAL_CURRENCY $ NLS_COMP BINARY NLS_NCHAR_CHARACTERSET ZHS16GBK NLS_RDBMS_VERSION 8.1.7.4.1 NLS_CHARACTERSET:ZHS16GBK是当前数据库的字符集。 我的windows oracle编码为: NLS_NCHAR_CHARACTERSET AL16UTF16 NLS_CHARACTERSET ZHS16GBK 我们再来查看客户端的字符集信息: 客户端字符集的参数NLS_LANG=_< territory >. language:指定oracle消息使用的语言,日期中日和月的显示。 Territory:指定货币和数字的格式,地区和计算星期及日期的习惯。 Characterset:控制客户端应用程序使用的字符集。通常设置或等于客户端的代码页。或者对于unicode应用设为UTF8。 在windows中,查询和修改NLS_LANG可在注册表中进行: HKEY_LOCAL_MACHINE\SOFTWARE\Oracle\HOMExx\ xx指存在多个Oracle_HOME时的系统编号。 我这里的windows默认为: windows Client: NLS_LANG SIMPLIFIED CHINESE_CHINA.ZHS16GBK 在Linux redhat5中:

sybase资料

关于Sybase ASE数据库的license以及试用版过期的问题的解决方案 作者:佚名来源:中国自学编程网收集整理发布日期:2009-02-18 当用户从Sybase官网上下载了ASE15.0.2以后,如果选择了安装Express Edition或者Developer Edition,基本上不会碰到什么问题,除了有些功能受限以下。 但大多数可能选择了Enterprise Edition for Evaluation类型,即企业版试用。都会碰到这样的问题,即一个月以后,license过期,无法启动server。于是很郁闷,可能大部分人,会选择卸载再重新安装一遍,这样当然没问题,只是,太浪费时间了。 有一段时间,我自己甚至也以为只能这样去解决了。 实际上不是,通过在sybase论坛上与一些有经验的人交流以后,发现,是可以切换的。 首先,有三种安装类型: 1. Express Edition,完全免费,不用缀述。 2. Developer Edition,没有使用期限限制,用于开发和测试。似乎不能商用,无所谓了。我也是刚得知。以前好像是有60天的限制。 3. Enterprise Edition,它是有试用时间的限制的。是30天。 只要能找到切换就OK了。 你的解决方法就是,把企业版的license切到开发版或者Express版。怎么切? 先看看目录$SYBASE/SYSAM-2_0/licenses下边的三个文件: SYBASE_ASE_DE.lic SYBASE_ASE_XE.lic 第一个文件里边有这样的内容: PE=DE;LT=DT 第二个文件里有这样的内容: PE=XE;LT=CP

oracle 修改字符集为ALU32UTF8

oracle 修改字符集 ZHS16GBK修改为AL32UTF8 oracle server 端字符集查询 selectuserenv('language') from dual 修改步骤如下面粗体字的命令: SQL> SQL> conn /as sysdba Connected. SQL> shutdown immediate; Database closed. Database dismounted. ORACLE instance shut down. SQL> startup mount ORACLE instance started. Total System Global Area 236000356 bytes Fixed Size 451684 bytes Variable Size 201326592 bytes Database Buffers 33554432 bytes Redo Buffers 667648 bytes Database mounted. SQL> ALTER SYSTEM ENABLE RESTRICTED SESSION;

System altered. SQL> ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0; System altered. SQL> ALTER SYSTEM SET AQ_TM_PROCESSES=0; System altered. SQL>alter database open; Database altered. SQL> ALTER DATABASE character set INTERNAL_USE AL32UTF8; Database altered. SQL> shutdown immediate; Database closed. Database dismounted. ORACLE instance shut down. SQL> startup ORACLE instance started. Total System Global Area 236000356 bytes Fixed Size 451684 bytes Variable Size 201326592 bytes Database Buffers 33554432 bytes Redo Buffers 667648 bytes Database mounted. Database opened.

Oracle服务端与客户端字符集

Oracle客户端与服务端字符集 Oracle 数据库对字符的处理及表现形式分为三个层面,优先级先后分别是数据库初始化参数字符集、OS操作系统环境变量级、session级。 数据库初始化参数字符集是在建数据库前指定的字符集,使用如下语句查询数据库字符集: SQL> select userenv('language') from dual; USERENV('LANGUAGE') ---------------------------------------------------- AMERICAN_AMERICA.ZHS16GBK 完整字符集名称分为三部分:语言_地域.字符集,这里以 AMERICAN_AMERICA.ZHS16GBK 和SIMPLIFIED CHINESE_CHINA.ZHS16GBK 为例说明各部分的含义: 语言决定了提示信息使用的语言,如AMERICAN表示使用英语,SIMPLIFIED CHINESE表示使用简体中文; 地域决定了缺省的日期格式等,如: AMERICA的时间格式为: SQL>select sysdate from dual; SYSDATE ------------ 20-AUG-12 CHINA的时间格式为: SQL>select sysdate from dual; SYSDATE --------------

20-8月-12 字符集的格式为<语言><比特位数><编码>比如: ZHS16GBK表示采用GBK 编码格式、16位(两个字节)简体中文字符集。 数据库建立后字符集原则上不要修改,如果修改可以用命令alter database set character set xxx; 不过这样修改有一定的危险,有可能会出现乱码造成数据的丢失,而且修改后的字符集一定是修改前字符集的超集,修改数据库字符集一般采用两种方法: 1.导出数据库数据,重建数据库,再导入数据库数据的方式来转换。 2.通过ALTER DATABASE CHARACTER SET语句修改字符集,具体操作 如下: 1)关闭数据库 SQL>SHUTDOWN IMMEDIATE 2)启动到Mount SQL>STARTUP MOUNT; SQL>ALTER SYSTEM ENABLE RESTRICTED SESSION; SQL>ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0; SQL>ALTER SYSTEM SET AQ_TM_PROCESSES=0; SQL>ALTER DATABASE OPEN; SQL>ALTER DATABASE CHARACTER SET ZHS16GBK; SQL>ALTER DATABASE NATIONAL CHARACTER SET ZHS16GBK; SQL>SHUTDOWN IMMEDIATE; SQL>STARTUP 注:启动数据库后应将有改动的JOB_QUEUE_PROCESSES、AQ_TM_PROCESSES等参数修改为原有值。 NLS_CHARACTERSET设置服务器的字符集。 NLS_LANG客户端字符集定义了客户端字符数据的编码方式,任何发自或发往客户端的字符数据均使用客户端定义的字符集编码,客户端可以看作是能与数据库直接连接的各种应用。如:当某客户端的NLS_LANG配置的字符集为:SIMPLIFIED CHINESE_CHINA.ZHS16CGB231280,但Oracle服务端配置的字符

SYBASE数据库日志详解

SYBASE数据库日志详解 开发者在线 https://www.wendangku.net/doc/f510224266.html,更新时间:2007-09-13作者:https://www.wendangku.net/doc/f510224266.html, 来 源:https://www.wendangku.net/doc/f510224266.html, 本文关键词:Sybase数据库日志 我们知道,SYBASE SQL Server用事务(Transaction)来跟踪所有数据库的变化。事务是SQL Server 的工作单元。一个事务包含一条或多条作为整体执行的 T-SQL语句。每个数据库都有自己的事务日志(Transaction Log),即系统表(Syslogs)。事务日志自动记录每个用户发出的每个事务。日志对于数据库的数据安全性、完整性至关重要,我们进行数据库开发和维护必须熟知日志的相关知识。 一、SYBASE SQL Server 如何记录和读取日志信息 SYBASE SQL Server是先记Log的机制。每当用户执行将修改数据库的语句时,SQL Server就会自动地把变化写入日志。一条语句所产生的所有变化都被记录到日志后,它们就被写到数据页在缓冲区的拷贝里。该数据页保存在缓冲区中,直到别的数据页需要该内存时,该数据页才被写到磁盘上。若事务中的某条语句没能完成,SQL Server将回滚事务产生的所有变化。这样就保证了整个数据库系统的一致性和完整性。 二、日志设备 Log和数据库的Data一样,需要存放在数据库设备上,可以将Log和Data存放在同一设备上,也可以分开存放。一般来说,应该将一个数据库的Data和Log存放在不同的数据库设备上。这样做有如下好处:一是可以单独地备份 Backup 事务日志;二是防止数据库溢满;三是可以看到Log的空间使用情况。 所建Log设备的大小,没有十分精确的方法来确定。一般来说,对于新建的数据库,Log的大小应为数据库大小的30%左右。Log的大小还取决于数据库修改的频繁程度。如果数据库修改频繁,则Log 的增长十分迅速。所以说Log 空间大小依赖于用户是如何使用数据库的。此外,还有其它因素影响Log大小,我们应该根据实际操作情况估计Log大小,并间隔一段时间就对Log进行备份和清除。 三、日志的清除 随着数据库的使用,数据库的Log是不断增长的,必须在它占满空间之前将它们清除掉。清除Log 有两种方法: 1.自动清除法 开放数据库选项 Trunc Log on Chkpt,使数据库系统每隔一段时间自动清除Log。此方法的优点是无须人工干预,由SQL Server自动执行,并且一般不会出现Log溢满的情况;缺点是只清除Log 而不做备份。

Oracle字符集乱码问题解决方法

Oracle汉字乱码问题原因及解决方法 目录 问题现象 (1) 问题原因 (1) 解决办法 (3) 问题现象 在开发项目中一直使用的是PostgreSQL,安装方便使用与oracle类似,但是由于性能相比较Oracle还是会差不少,所以一些数据量比较大的项目还是会用到Oracle数据库,但是在安装数据库以后发现中文数据在数据库中会产生乱码,使用PlSql查询依然也是乱码。如下图所示: 问题原因 Oracle中出现中文乱码的主要原因是字符集不同。Oracle中对于字符集来说我们关心三个地方的字符集: ● Oracle服务器内部的字符集 ● NLS_LANG变量里保存的字符集 ● 客户端应用的字符集 Oracle服务器内部的字符集

Oracle服务器内部的字符集是Oracle数据库存储数据使用的字符集,可以使用如下的查询语句查询 Select userenv('language') from dual; 或者: Select name, value$ from props$; NLS_LANG变量里保存的字符集 NLS_LANG这个是Oracle设置的一个变量,在Windows中,这个变量保存在注册表中: HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE/HOME0保存着NLS_LANG变量。 在Unix/Linux中,则需要自己进行设置了。可以在.profile里面加上 NLS_LANG=AMERICAN_AMERICA.ZHS16GBK export NLS_LANG 客户端应用的字符集 Oracle客户端使用比较多的是PLSQL Developer 当然目前plsql客户端还不能很好的支持64为的Oracle 当然可以下载Oracle官方的客户端再通过关联可以使用plsql连接上64位的Oracle数据库,这与本文主题略有偏离便不详细描述了。 如果 Oracle服务器内部的字符集和 NLS_LANG变量里保存的字符集相同,在进行Oracle查询时,就会将Oracle中的数据直接查出来,返回给查询用户。进行Oracle的插入操作,就会直接将插入的数据保存进数据库中。 但是如果不同的话,Oracle查询时,会根据这两个字符集的一个映射,将数据库中的数据作一个转换,再返回给查询用户。进行插入操作时,也会根据映射,将插入的数据作一个转换,再插入数据库。这也是产生乱码的原因,这一层转换,把数据都给转乱了。

Oracle 字符集的查看和修改

Oracle 字符集的查看和修改 一、什么是Oracle字符集 Oracle字符集是一个字节数据的解释的符号集合,有大小之分,有相互的包容关系。ORACLE 支持国家语言的体系结构允许你使用本地化语言来存储,处理,检索数据。它使数据库工具,错误消息,排序次序,日期,时间,货币,数字,和日历自动适应本地化语言和平台。 影响Oracle数据库字符集最重要的参数是NLS_LANG参数。 它的格式如下: NLS_LANG = language_territory.charset 它有三个组成部分(语言、地域和字符集),每个成分控制了NLS子集的特性。 其中: Language:指定服务器消息的语言,影响提示信息是中文还是英文Territory:指定服务器的日期和数字格式, Charset:指定字符集。 如:AMERICAN _ AMERICA. ZHS16GBK 从NLS_LANG的组成我们可以看出,真正影响数据库字符集的其实是第三部分。 所以两个数据库之间的字符集只要第三部分一样就可以相互导入导出数据,前面影响的只是提示信息是中文还是英文。 二.字符集的相关知识: 2.1 字符集 实质就是按照一定的字符编码方案,对一组特定的符号,分别赋予不同数值编码的集合。Oracle数据库最早支持的编码方案是US7ASCII。 Oracle的字符集命名遵循以下命名规则: 即: <语言><比特位数><编码> 比如: ZHS16GBK表示采用GBK编码格式、16位(两个字节)简体中文字符集

2.2 字符编码方案 2.2.1 单字节编码 (1)单字节7位字符集,可以定义128个字符,最常用的字符集为US7ASCII (2)单字节8位字符集,可以定义256个字符,适合于欧洲大部分国家例如:WE8ISO8859P1(西欧、8位、ISO标准8859P1编码) 2.2.2 多字节编码 (1)变长多字节编码 某些字符用一个字节表示,其它字符用两个或多个字符表示,变长多字节编码常用于对亚洲语言的支持,例如日语、汉语、印地语等 例如:AL32UTF8(其中AL代表ALL,指适用于所有语言)、zhs16cgb231280 (2)定长多字节编码 每一个字符都使用固定长度字节的编码方案,目前oracle唯一支持的定长多字节编码是AF16UTF16,也是仅用于国家字符集 2.2.3 unicode编码 Unicode是一个涵盖了目前全世界使用的所有已知字符的单一编码方案,也就是说Unicode为每一个字符提供唯一的编码。UTF-16是unicode的16位编码方式,是一种定长多字节编码,用2个字节表示一个unicode字符,AF16UTF16是UTF-16编码字符集。 UTF-8是unicode的8位编码方式,是一种变长多字节编码,这种编码可以用1、2、3个字节表示一个unicode字符,AL32UTF8,UTF8、UTFE是UTF-8编码字符集 2.3 字符集超级 当一种字符集(字符集A)的编码数值包含所有另一种字符集(字符集B)的编码数值,并且两种字符集相同编码数值代表相同的字符时,则字符集A是字符集B的超级,或称字符集B是字符集A的子集。 Oracle8i和oracle9i官方文档资料中备有子集-超级对照表(subset-superset pairs),例如:WE8ISO8859P1是WE8MSWIN1252的子集。由于US7ASCII是最早的Oracle数据库编码格式,因此有许多字符集是US7ASCII的超集,例如 WE8ISO8859P1、ZHS16CGB231280、ZHS16GBK都是US7ASCII的超集。 2.4 数据库字符集(oracle服务器端字符集) 数据库字符集在创建数据库时指定,在创建后通常不能更改。在创建数据库时,可以指定字符集(CHARACTER SET)和国家字符集(NATIONAL CHARACTER SET)。

Oracle数据库字符集的查询

Oracle数据库字符集的查询 Oracle数据库字符集通俗的讲就是一个字节数据的相关的解释的符号集合,它具有大小的差异,也有互相包容关系。Oracle是支持国家语言的相关体系结构,它允许你使用本地化语言来存储,处理,检索数据。它使数据库工具,错误消息,排序次序,日期,时间,货币,数字,和日历自动适应本地化语言和平台。 影响oracle数据库字符集最重要的参数是NLS_LANG参数。它的格式如下: NLS_LANG = language_territory.charset 它有三个组成部分(语言、地域和字符集),每个成分控制了NLS子集的特性。其中: Language 指定服务器消息的语言,territory 指定服务器的日期和数字格式,charset指定字符集。如:AMERICAN _ AMERICA. ZHS16GBK。 从NLS_LANG的组成我们可以看出,真正影响Oracle数据库字符集的其实是第三部分。所以两个数据库之间的字符集只要第三部分一样就可以相互导入导出数据,前面影响的只是提示信息是中文还是英文。 如何查询Oracle的字符集 很多人都碰到过因为字符集不同而使数据导入失败的情况。这涉及三方面的字符集,一是Oracel server端的字符集,二是oracle client端的字符集;三是dmp文件的字符集。在做数据导入的时候,需要这三个字符集都一致才能正确导入。 1、查询Oracle Server端的字符集: 有很多种方法可以查出oracle server端的字符集,比较直观的查询方法是以下这种: SQL>select userenv(‘language’) from dual; 结果类似如下:AMERICAN _ AMERICA. ZHS16GBK。 2、如何查询dmp文件的字符集: 用Oracle的exp工具导出的dmp文件也包含了字符集信息,dmp文件的第2 和第3个字节记录了dmp文件的字符集。如果dmp文件不大,比如只有几M或几十M,可以用UltraEdit打开(16进制方式),看第2第3个字节的内容,如0354,然后用以下SQL查出它对应的字符集: SQL> select nls_charset_name(to_number('0354','xxxx')) from dual; ZHS16GBK

相关文档