如题,sqlplus用scott用户登录时报错。我的机器是win7 64位。oracle 11g。现只有一台机子,我知道oracle大部分情况是只需装服务器就可以用了。但是现在想用plsql,而plsql貌似必须用32位的oracle客户端来连接服务端。所以发生了现在情况,先装oracle服务端,使用服务端的sqlplus可以正常登录同一台机器上再装了oracle客户端后,使用客户端的sqlplus(此时有两个sqlplus,一个是服务器的,一个是客户端的)没法用户登录。更别提plsql了。错误如下:请输入用户名:  scott
输入口令:
ERROR:
ORA-12560: TNS: 协议适配器错误网上找过一些协议适配器错误的结局方法,如重启服务,修改注册表都没用。把几个配置文件也贴上来吧。
服务器:
tnsnames.ora
ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
    )
  )listener.ora
LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    )
  )客户端:
tnsnames.ora
ORCL =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
    )
  )帮帮忙,如果需要其他的诊断信息,会后续提供。
郁闷了,不知道是我哪个方面理解有误区还是怎样,请指点。

解决方案 »

  1.   

    建议你百度  :ORA-12560: TNS: 协议适配器错误很多
      

  2.   

    因为你装了多个版本的原因。环境变量要指定正确的
    你可以在网上搜索  32位 pl/sql 连接64位 oracle 我给你贴下我以前找的。
    我是用32位的oracle10g的客户端,安装完以后一直出现tns错误.这搞那搞方法试了一大堆...
    直到最后找到原因,原来64位装32位软件默认装在Program Files (x86)里,
    oracle无法解析Program Files (x86)里的圆括号.....把他换一个文件夹安装就正常了,我靠就是这么简单
    还有有安装64位的oralce数据库,用pl/sql登陆会出现oci.dll的错误,
    解决办法也是装32位的客户端,然后在PLSQL Developer选择Tools > Preferences > options > "Oracle Home" and "OCI Library",例如:Oracle10g装在D:\oracle\
    则:Oracle Home为OraClient10g_home2
           OCI Library为F:\Oracle\product\10.1.0\Client_1\bin\oci.dll
     
    ----------------------------------------------------------------------------------
     
    PL/SQL Developer在64位windows上的使用2008-11-11 10:29环境:
    PL/SQL Developer版本:7.0.0.1050
    OS:windows 2003 SP2 64位
    Oracle DB:10.2.0.4 64位
    Oracle client 10.2.0.1 32位在64位的windows上安装的64位的Oracle无法用PL/SQL Developer访问,登录时找不到数据库实例,解决办法如下:
    1.安装64位oracle DB。
    2.安装32位Oracle Client。
    3.安装PL/SQL Developer。
    4.PL/SQL Developer中设置OracleHome:OraClient109_home1
    OCI library:OraClient109_home1\bin\oci.dll
    5.OK64位win7下PL/SQL Developer 报"ORA-12154: TNS:无法解析指定的连接标识符"问题的一个解决办法 
        接着上次的话题,在64位win7上装了32位oracle10g 以后又出现了新的问题:
        在使用oracle自带的sqlplus连接本机或者远程的oracle实例均能成功过,但使用 PL/SQL Developer (我装的是7.1版本) 连接任何一个实例在登录时均报"ORA-12154: TNS:无法解析指定的连接标识符"错误。
        冷静,先分析原因,既然sqlplus已经能够连接,说明oracle的安装(至少客户端的安装)是正常的,TNS的配置是正确的。问题应该出在PL/SQL Developer 自身。考虑到本次安装oracle的过程中有诺干次安装失败且变换过oracle home,是否是注册表中的信息有写垃圾未清理?!进入 PL/SQL Developer  的 preferences中发现可以设定oracle home。该选项为空是自动选择,也可以手工填入路径。但是设置后没有效果。之后又检查了注册表、oracle设置均无异常。
        无奈之下选择了重装PL/SQL Developer 。运行安装程序以后弹出一个警告框,这次仔细的看了一下,大概意思是安装目录中含有特殊字符可能导致oracle无法连接。该提示窗口按"确认"按钮后依然会继续安装。恍然大悟啊,64位win7会把32位应用程序默认的安装到Program Files (x86)目录下,那两个括号可能让oracle郁闷了。改变安装路径为一个比较"大众化"的路径,再次进行数据库连接,一切问题都解决了。
         
      

  3.   

    谢谢4楼,不过我把64位oracle卸载了,改装了32位oracle。一切OK了。。  暂时不必要非得用64位oracle,就凑合吧。至于你的方法没地方式。。我看可行,分都给你吧