plsql和其他客户端(putty和ssh&nb…

一、
个人实践:加了一个环境变量NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK   成功了
方法:
设置好环境变量后,在 PLSQL Developer 的目录中创建start.bat文件。
以下是start.bat的内容:
@echo off 
set path=D:\oracle\product\instantclient_10_2
set ORACLE_HOME=D:\oracle\product\instantclient_10_2
set TNS_ADMIN=D:\oracle\product\instantclient_10_2
set NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK
start plsqldev.exe
启动plsql时直接点击这个脚本
TNS_ADMIN=D:\oracle\product\instantclient_10_2 这环境变量如果没有的话,在我的电脑,属性,高级,环境变量,中添加(我用的是oracle精简版客户端)
如果是非精简版的建议修改注册表:运行-》regedit->HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE/KEY_OraClient10g_home1/NSL_LANG,倒数第二个参数可能不一样,改成
SIMPLIFIED CHINESE_CHINA.ZHS16GBK

这个可能是oracle客户端和服务器端的编码方式不一样。
SQL> select * from v$nls_parameters t where t.PARAMETER ='NLS_LANGUAGE' or t.PARAMETER ='NLS_CHARACTERSET';

PARAMETER
----------------------------------------------------------------
VALUE
----------------------------------------------------------------
NLS_LANGUAGE
SIMPLIFIED CHINESE

NLS_CHARACTERSET
ZHS16GBK


--数据库服务器字符集
SQL> select * from nls_database_parameters;

PARAMETER
------------------------------
VALUE
--------------------------------------------------------------------------------
NLS_LANGUAGE
AMERICAN

--客户端字符集
--表示客户端的字符集的设置,可能是参数文件,环境变量或者是注册表
SQL> select * from nls_instance_parameters;

PARAMETER
------------------------------------------------------------
VALUE
--------------------------------------------------------------------------------
NLS_LANGUAGE
AMERICAN

--会话字符集的设置,这个没有特殊设置的话,和nls_instance_parameters一致;
SQL> select * from nls_session_parameters;

PARAMETER
------------------------------------------------------------
VALUE
--------------------------------------------------------------------------------
NLS_LANGUAGE
SIMPLIFIED CHINESE

二、
如果数据库服务器端的编码和客户端字符集编码不一样,则会导致乱码,因此需要更改客户端的编码方式。
更改客户端的编码方式有两种方式,第一种是更改注册表,这个比较危险,就不在这里提及。第二种是设置环境变量。
设置环境变量,新建一个环境变量:NLS_LANG,值是:AMERICAN.ZHS16GBK。
值的构成方式是数据库中查询的服务器端的“NLS_LANGUAGE的值”+“.”+“NLS_CHARACTERSET的值”

如果是其他的客户端,如putty和ssh client,xmanager等的话也是要设置环境变量
export NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK"
这个环境变量只会改变nsl_session_parameters的值,不会改变nls_data_parameters和nls_instance_parameters的参数值

eg:
SQL> select name from menu;

NAME
--------------------
意义
北京

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值