`

Oracle免安装客户端配置及plsqldeveloper中文乱码解决

阅读更多

oracle客户端软件安装都知道非常占空间而且很消耗计算机的资源、性能。
幸亏oracle出了免安装的客户端zip包。

下载oracleclient及配置
下载地址:http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html   这个是当前最新地址,各种版本的都有,当然oracle的网页常常更新网址变了自己再找。
需要注意的是,下载客户端包是要对应自己oracle服务器的版本,9i,10g,11g对应的包都不一样。
备注:
Version 11.2.0.3.0 是支持11g的
instantclient-basic-win32-11.1.0.6.0.zip -这个是支持Oracle 9i以上的版比如10g(不包括Oracle9i)
instantclient-basic-win32-10.2.0.1.zip -这个是支持Oracle8i 和Oracle9i 的。


zip包下载好后就解压缩到某个目录,这个自便了。目录记好就行。

建立系统环境变量:ORACLE_HOME=D:\\oracleclient\\instantclient_11_1  这个是我的
在D:\oracleclient\instantclient_11_1 目录下建目录,NETWORK。在NETWORK里面再建ADMIN
然后在ADMIN内建立tnsnames.ora文件,内容如下:

yourDataBaseName =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = yourhostIp )(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = yourSID   )
)
)

附上我的
ORADB_198 =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.198)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = oradb)
    )
  )



plsqldeveloper下载及配置
plsqldeveloper 网上非常多各种破解什么的一搜就有,9.0.6.1655我装的这个版本

按照默认装好之后,只要你的tnsnames.ora文件没问题,一般就可以登录你的数据库了。
查询一下存储有中文的表,如果也没问题,你就完事大吉。下面要说的查询数据库中文乱码问题。

plsqldeveloper查询数据库中文乱码
作为开发者,乱码总是让人苦恼。

1:select * from v$nls_parameters
查询nls的参数,获得数据库服务器端的字符编码
NLS_LANGUAGE
NLS_CHARACTERSET
2:修改本地环境变量,设置
NLS_LANG = SIMPLIFIED CHINESE.ZHS16GBK //这个是我们的数据库字符编码

NLS_LANG格式:
NLS_LANG = language_territory.charset
有三个组成部分(语言、地域和字符集),每个成分控制了NLS子集的特性。其中:language 指定服务器消息的语言。
territory 指定服务器的日期和数字格式。
charset 指定字符集

 

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

执行 select * from v$nls_parameters
下面是我的查询结果,仅供参考。

PARAMETER VALUE
NLS_LANGUAGE AMERICAN
NLS_TERRITORY AMERICA
NLS_CURRENCY $
NLS_ISO_CURRENCY AMERICA
NLS_NUMERIC_CHARACTERS .,
NLS_CALENDAR GREGORIAN
NLS_DATE_FORMAT DD-MON-RR
NLS_DATE_LANGUAGE AMERICAN
NLS_CHARACTERSET ZHS16GBK
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 TZR
NLS_TIMESTAMP_TZ_FORMAT DD-MON-RR HH.MI.SSXFF AM TZR
NLS_DUAL_CURRENCY $
NLS_NCHAR_CHARACTERSET AL16UTF16
NLS_COMP BINARY
NLS_LENGTH_SEMANTICS BYTE
NLS_NCHAR_CONV_EXCP FALSE

 看出点什么没,NLS_LANGUAGE的值居然不是CHINESE

那就不能拷贝上面的NLS_LANGUAGE值来用。

根据查询出来的结果,我是这么设的:NLS_LANGUAGE=AMERICAN_AMERICA.ZHS16GBK   (至于为什么这么写仔细看上面红字部分)

 

开始我做成bat文件执行无效。set NLS_LANG=AMERICAN AMERICA.ZHS16GBK ;后来干脆手动在系统环境变量中添加。

果然就好使了。注意添加的时候AMERICAN AMERICA.ZHS16GBK 里的下划线不能少。本人是win764位系统。

 

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics