场景:把一台linux上的oracle库的数据 捣腾 到一台 windows2003上的oracle库中,在捣腾的过程中乱码了!有经验的知道多半是要改windows的注册表。
注册表打开发方式:
Win98/98SE/Me
运行中输入regedit.exe 无权限限制
Win2000/XP
1.开始>>运行.中输入regedt32
2.开始>>运行.中输入regedit
第一种方法打开的注册表编辑器和Win98下的一样,而且功能相同,而使用第二种方法打开的注册表编辑器则可以方便的设置权限,建议网络管理员使用第2种方法打开注册表编辑器修改需要修改的权限设置部分以免被他人恶意修改。
Windows Vista/7
1.在开始菜单搜索框中输入regedit并按回车键.(需要管理员权限)
2.在运行中输入regedit.exe(需要管理员权限)
1. NLS_LANG 参数组成
NLS_LANG参数由以下部分组成:
NLS_LANG=<language>_<territory>.<client character set>
Language:指定Oracle消息使用的语言,校验,日期中月份和日显示。
Territory:指定默认日期、数字、货币等格式,地区和计算星期及日期的习惯。
Client character set:控制客户端应用程序使用的字符集
例如:NLS_LANG=AMERICAN_AMERICA.US7ASCII
AMERICAN是语言,AMERICA是地区,US7ASCII是客户端字符集
通常设置或者等于客户端(如Windows)代码页
或者对于unicode应用设置为UTF8
在Windows上查看当前系统的代码页可以使用chcp命令:
E:\>chcp
活动的代码页: 936
代码页936也就是中文字符集 GBK,在Microsoft的官方站点上,我们可以遭到关于936代码页的具体编码规则,请参考以下链接:
http://www.microsoft.com/globaldev/reference/dbcs/936.htm
2. 查看 NLS_LANG 的方法
Windows使用:
注册表HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOMExx\NLS_LANG查看
Unix使用:
env|grep NLS_LANG
如:
/opt/oracle>env|grep NLS_LANG
NLS_LANG=AMERICAN_CHINA.ZHS16GBK
Windows客户端设置,可以在注册表中更改NLS_LANG,具体键值位于:
HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOMExx\
xx指存在多个ORACLE_HOME时系统编号。
3. 查看数据库当前字符集参数设置
SELECT * FROM v$nls_parameters;
4. 查看数据库可用字符集参数设置
SELECT * FROM v$nls_valid_values;
5. 客户端 NLS_LANG 的设置方法
Windows:
# 常用中文字符集
NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK
# 常用unicode字符集
NLS_LANG=american_america.AL32UTF8
可以通过修改注册表键值永久设置
HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOMExx\NLS_LANG
Unix:
# 常用unicode字符集
export NLS_LANG=american_america.AL32UTF8
# 常用中文字符集
export NLS_LANG="Simplified Chinese_china".ZHS16GBK
可以编辑 bash_profile 文件进行永久设置
vi .bash_profile
NLS_LANG="Simplified Chinese_china".ZHS16GBK export NLS_LANG
# 使 bash_profile 设置生效
source .bash_profile
=================================================================================
[Q]怎么样查看数据库字符集
[A]数据库服务器字符集select * from
nls_database_parameters,其来源于props$,是表示数据库的字符集。
客户端字符集环境select * from nls_instance_parameters,其来源于v$parameter,
表示客户端的字符集的设置,可能是参数文件,环境变量或者是注册表
会话字符集环境 select * from
nls_session_parameters,其来源于v$nls_parameters,表示会话自己的设置,可能是会话的环境变量或者是alter
session完成,如果会话没有特殊的设置,将与nls_instance_parameters一致。
客户端的字符集要求与服务器一致,才能正确显示数据库的非Ascii字符。如果多个设置存在的时候,alter
session>环境变量>注册表>参数文件
字符集要求一致,但是语言设置却可以不同,语言设置建议用英文。如字符集是zhs16gbk,则nls_lang可以是
American_America.zhs16gbk。
[Q]怎么样修改字符集
[A]8i以上版本可以通过alter database来修改字符集,但也只限于子集到超集,不建议修改props$表,将可能导致严重错误。
Startup nomount;
Alter database mount exclusive;
Alter system enable restricted session;
Alter system set job_queue_processes=0;
Alter database open;
Alter database character set zhs16gbk;
[Q]怎么样查看数据库字符集
[A]数据库服务器字符集select * from
nls_database_parameters,其来源于props$,是表示数据库的字符集。
客户端字符集环境select * from nls_instance_parameters,其来源于v$parameter,
表示客户端的字符集的设置,可能是参数文件,环境变量或者是注册表
会话字符集环境 select * from
nls_session_parameters,其来源于v$nls_parameters,表示会话自己的设置,可能是会话的环境变量或者是alter
session完成,如果会话没有特殊的设置,将与nls_instance_parameters一致。
客户端的字符集要求与服务器一致,才能正确显示数据库的非Ascii字符。如果多个设置存在的时候,alter
session>环境变量>注册表>参数文件
字符集要求一致,但是语言设置却可以不同,语言设置建议用英文。如字符集是zhs16gbk,则nls_lang可以是
American_America.zhs16gbk。
[Q]怎么样修改字符集
[A]8i以上版本可以通过alter database来修改字符集,但也只限于子集到超集,不建议修改props$表,将可能导致严重错误。
Startup nomount;
Alter database mount exclusive;
Alter system enable restricted session;
Alter system set job_queue_process=0;
Alter database open;
Alter database character set zhs16gbk;
分享到:
相关推荐
快速通过NLS_LANG切换字符集快捷工具设置客户端字符集,避免连接多个不同字符集的数据库导致PL/SQL工具显示乱码的问题。
对于开发跨语言的应用程序,理解并正确配置NLS参数至关重要,这包括NLS_LANG环境变量的设置,以及数据库实例、表空间和列的字符集设定。 `orai18n.jar`则是Oracle 11g中的JDBC驱动的一部分,它包含了国际化的支持,...
在Oracle客户端中,`NLS_LANG`是一个重要的环境变量,它用于定义客户端的语言环境设置,包括语言、地域以及字符集等。这对于确保客户端能够正确地解析来自服务器的数据至关重要。 - **LANGUAGE**:指定Oracle消息...
Oracle的NLS_DATE_FORMAT设置(日期格式设置)_ITPUB博客.mhtml
6. **字符集问题**:`nls_charset12.jar`涉及到字符集,如果在处理字符串数组时遇到乱码问题,可能需要检查数据库的NLS字符集设置和应用程序的字符集设置是否一致。 综上所述,"oracle class12.jar nls_charset12....
Oracle IMP 导入数据乱码问题解决方法 OracleIMP 命令是 Oracle 数据库中的一种数据导入...解决 Oracle IMP 导入数据乱码问题的关键是正确地设置 NLS_LANG 环境变量,并确保备份文件的编码方式与数据库的字符集一致。
`nls_lang`是Oracle数据库的一个环境变量,全称为National Language Support (NLS) Language,它定义了数据库的字符集、日期格式、数字格式等与本地化相关的设置。当我们在多个Oracle Home中工作时,每个实例可能有...
1. **理解NLS_LANG参数**:影响Oracle字符集最重要的参数是`NLS_LANG`。其格式为:`NLS_LANG=language_territory.charset`。例如:`AMERICAN_AMERICA.ZHS16GBK`。该参数由三部分组成(语言、地域和字符集),其中前...
- 修改`NLS_LANG`键值为所需的字符集格式,例如:`NLS_LANG=AMERICAN_AMERICA.UTF8`。这里的`AMERICAN_AMERICA`表示语言和地区,而`UTF8`则表示字符集编码。 #### 四、理解NLS_LANG参数 - **NLS_LANG**:该环境...
在处理多语言数据时,Oracle提供了NLSSORT参数来调整排序规则,同时配合使用NLS_LANG环境变量来设定客户端的字符集和排序规则,确保数据的一致性。 总结,Oracle字符集是数据库管理的关键部分,理解和正确配置字符...
标题中的“PB连ORACLE10免客户端”指的是使用PowerBuilder(PB)12.5连接Oracle 10g数据库时,不需安装完整的Oracle客户端软件,而是采用一种轻量级或者精简的方式进行连接。这种方法可以减少系统资源的占用,简化...
在实际操作中,Oracle客户端字符集同样重要,通过环境变量NLS_LANG设置。正确配置客户端字符集,确保与服务器端字符集的兼容,是成功进行数据存取的前提。如果客户端和服务器端字符集不匹配,可能会导致乱码或数据...
- **NLS_LANG**:环境变量,用于指定客户端的语言、地区和字符集信息。 2. **NLS_LANG格式**: - **格式**:`NLS_LANG=language_territory.charset` - `language`:指定语言,例如American(英语)。 - `...
进入 PowerBuilder,点击 DB Profile 选项,选择 Oracle 7.3 或 Oracle 8.0.4,输入“Profile Name”和“Server”信息,注意 Oracle 7 版本需要在数据连接字符串前加上@,否则不能连接上 PB 数据库。 Tnsnames.ora ...
window下修改NLS_LANG环境变量快捷工具,此工具利用bat写的,可以看见源码,提供给大家参考
NLS_LANG是影响Oracle数据库字符集的最重要参数,它由三部分组成:LANGUAGE、TERRITORY和CHARACTERSET。其中,CHARACTERSET指定客户端应用程序使用的字符集,直接影响数据库字符集的行为。 3. 查询Oracle数据库字符...
客户端的字符集设置主要通过NLS_LANG环境变量来完成,它的优先级依次为参数文件、注册表、环境变量和`ALTER SESSION`命令。NLS_LANG的格式由国家语言设置和字符集两部分组成,例如`SIMPLIFIED CHINESE_CHINA.ZHS16...
解决Oracle字符集问题的关键在于理解字符集间的兼容性和转换规则,以及客户端、服务器和NLS_LANG之间的关系。在处理多语言环境时,选择Unicode字符集如AL32UTF8通常更为安全,因为它支持广泛的语言,减少了字符集不...
在这个过程中,**客户端的字符集设置**非常重要,特别是`NLS_LANG`参数的设置。该参数包括以下组成部分: - **Language**:用于指定Oracle消息的语言以及日期中月份和日的显示方式。 - **Territory**:用于定义货币...