总结 

如果遇到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),如下图:

   

plsql 相关设置_plsql

 

        (三) 复制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项,如下图所示:

                  

plsql 相关设置_plsql_02

 

            其中, Oracle Home:E:\app\Administrator\product\instantclient_11_2

                  OCI Library:E:\app\Administrator\product\instantclient_11_2\oci.dll

 

         (五) 配置系统环境变量

              右击"我的电脑" - "属性" - "高级" - "环境变量" - "系统环境变量":

  1. 选择"Path" - 点击"编辑", 加入 "E:\app\Administrator\product\instantclient_11_2;" 

  2. 点击"新建", 变量名设置为"TNS_ADMIN", 变量值设置为"E:\app\Administrator\product\instantclient_11_2;", 点击"确定";

  3. 检查是否有“ORACLE_HOME”,若无新建添加,变量值为“E:\app\Administrator\product\instantclient_11_2”;(我就是漏了这个)

  4. 对于NLS_LANG环境变量, 最好设置成和数据库端一致,首先从数据库端查询字符集信息:(若数据库无字符问题,则可有可无)

    SQL> select userenv('language') nls_lang fromdual;

        NLS_LANG
       ----------------------------------------------------

 SIMPLIFIED CHINESE_CHINA.ZHS16GBK