总结
如果遇到tns解析错误,一定要重点考虑tnsnames.ora文件是否配置正确
最近由于数据库出现问题,重装了数据库,版本为Oracle11G,手贱更新了plsql developer到10版,导致无法连接到64bit的oracle上,经过一番折腾,终于找到问题所在,成功连接到数据库上。
(一)下载instantclient-basic-win32-11.2.0.1.0(oracle官网下载地址:http://www.oracle.com/technetwork/topics/winsoft-085727.html , 下载地址2:http://download.csdn.net/detail/czw2010/5732241)
(二)解压instantclient-basic-win32-11.2.0.1.0并放置在oracle安装目录的product下(E:\app\Administrator\product),如下图:
(三) 复制listener.ora和tnsnames.ora(位置E:\app\Administrator\product\11.2.0\dbhome_1\NETWORK\ADMIN)到E:\app\Administrator\product\instantclient_11_2的下面。
(四) 打开PLSQL Developer,选择Tools -> perference -> Connection,配置其中的OracleHome和OCI Library项,如下图所示:
其中, Oracle Home:E:\app\Administrator\product\instantclient_11_2
OCI Library:E:\app\Administrator\product\instantclient_11_2\oci.dll
(五) 配置系统环境变量
右击"我的电脑" - "属性" - "高级" - "环境变量" - "系统环境变量":
选择"Path" - 点击"编辑", 加入 "E:\app\Administrator\product\instantclient_11_2;"
点击"新建", 变量名设置为"TNS_ADMIN", 变量值设置为"E:\app\Administrator\product\instantclient_11_2;", 点击"确定";
检查是否有“ORACLE_HOME”,若无新建添加,变量值为“E:\app\Administrator\product\instantclient_11_2”;(我就是漏了这个)
对于NLS_LANG环境变量, 最好设置成和数据库端一致,首先从数据库端查询字符集信息:(若数据库无字符问题,则可有可无)
SQL> select userenv('language') nls_lang fromdual;
NLS_LANG----------------------------------------------------SIMPLIFIED CHINESE_CHINA.ZHS16GBK