有时开发人员面对多种字符集的oracle数据库,在用客户端工具访问数据库时,必须事先修改本地的字符集设置,即NLS_LANG参数,才能正常显示表
中的中文.一般来说可以通过修改注册表和环境变量两种方式来改变这种设置.我们还可以把这种参数设置的改变通过批处理程序来实现,这样可以非常方便的切换
访问各种字符集的数据库.
以修改注册表中的NLS_LANG为例.
1.导出注册表中的相应键值到一个文件中(ZHS16GBK.reg),删除无用的键值,只留NLS_LANG,如oracle10G的注册表信息如下:
--------------------------------------------------------------------
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraDb10g_home1]
"NLS_LANG"="SIMPLIFIED CHINESE_CHINA.ZHS16GBK"
--------------------------------------------------------------------
2.修改NLS_LANG的值,生成另一个.reg文件,如US7ASCII.reg:
NLS_LANG,如oracle10G的注册表信息如下:
--------------------------------------------------------------------
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraDb10g_home1]
"NLS_LANG"="SIMPLIFIED CHINESE_CHINA.US7ASCII"
--------------------------------------------------------------------
3.建立两种批处理文件来调用注册表文件和启动ORACLE客户端工具.如(ZHS16GBK.bat/US7ASCII.bat)
[ZHS16GBK.bat文件内容如下]
".\NLS_LANG.ZHS16GBK.reg"
"%ProgramFiles%\plsql developer\plsqldev.exe"
[US7ASCII.bat文件内容如下]
".\NLS_LANG.US7ASCII.reg"
"%ProgramFiles%\plsql developer\plsqldev.exe"
直接运行(ZHS16GBK.bat/US7ASCII.bat)来打开客户端工具,这样就可以方便地切换访问不同字符集的数据库且能正常显示中文了.
ps:
通过oracle10G里发布的instanceclient也可以通过在批处理脚本中设置NLS_LANG来显示不同字符集的数据库.
(http://publishblog.blogchina.com/blog/tb.b?diaryID=3404106 )如下:
set NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK
set TNS_ADMIN=D:\oracle\instantclient_10_2
set ORACLE_HOME=D:\oracle
sqlplus.exe test/test@192.x.x.x:1521/orcl
分享到:
相关推荐
例如,数据库开发中您可以允许PL/SQL Developer的全部功能性,而数据库测试中您可以仅允许数据查询/编辑和对象浏览功能,而数据库制作中您甚至根本不希望PL/SQL Developer访问。利用PL/SQL Developer授权功能,您...
PLSQL12,绿色版,免安ORACLE,亲测可用,可以跟进oracle字符集,设置环境变量。
例如,数据库开发中您可以允许PL/SQL Developer的全部功能性,而数据库测试中您可以仅允许数据查询/编辑和对象浏览功能,而数据库制作中您甚至根本不希望PL/SQL Developer访问。利用PL/SQL Developer授权功能,您...
对于NLS_LANG环境变量, 最好设置成和数据库端一致, 首先从数据库端查询字符集信息: SQL> select userenv('language') nls_lang from dual; NLS_LANG ---------------------------------------------------- ...
安装oracle数据库是件头疼的事,win7推荐11g,win8推荐12c,关于12c的客户端比较难找,该资源中给出官方的客户端资源链接,进去第一个就是,至于PLSQL这个软件,在win8上显示数据库内中文是乱码,并非服务器与客户端字符集不...
查看一些数据库服务器和客户端的额字符集有没有不同的: 代码如下:select * from nls_database_parameters;select * from nls_instance_parameters;select * from v$nls_parameters t where t.PARAMETER =’NLS_...
1、查询ORACLE服务器的语言、地域和字符集 select * from nls_database_paameters; 查询结果如下图, NLS_LANGUAGE 表示“语言”,NLS_TERRITORY 表示“地域”,NLS_CHARACTSET 表示“字符集”,将他们三个按照...
PLSQLDeveloper 安装配置使用 2.在 PLSQL Developer 启动,配置 oracle instanceclient 目录 4、 默认 PLSQL Developer 连接 Oracle 使用客户端字符集 utf-8 , 基于工具使用 SQL 插入中文有乱码问题...
第7章-PLSQL基础 PL/SQL是什么 PL/SQL 变量的使用 表达式 PL/SQL结构控制 PL/SQL中使用DML和DDL语言 PL/SQL中的异常 PL/SQL函数编写 第8章-游标,数据的缓存区 什么是游标 显示游标 隐式游标 第9章-...
默认值: nls_length_semantics 的数据库字符集的字符所使用的度量单位。BYTE。 nls_date_format: 说明: 指定与 TO_CHAR 和 TO_DATE 函数一同使用的默认日期格式。该参数的默认值由 NLS_TERRITORY 确定。该参数的值...