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位系统。