命令行输入 :sqlplus system/manager@LOCAL  结果:ORA-12514:TNS:无法解析指定的连接标识符提示如入用户名:
密码:
如入后又能登陆 
这个事什么原因?新建了个库demo tnsname.ora 配置如下:  LOCAL =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SID = demo) 
    )
  )listener.ora 配置如下:
SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = PLSExtProc)
      (ORACLE_HOME = D:\oracle\product\10.2.0\db_1)
      (PROGRAM = extproc)
    )
  )LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = liubo)(PORT = 1521))
    )
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
    )
  )使用tnsping liubo 得到如下结果:TNS Ping Utility for 32-bit Windows: Version 10.2.0.1.0 - Production on 16-12月-
2009 13:16:17Copyright (c) 1997, 2005, Oracle.  All rights reserved.已使用的参数文件:
D:\oracle\product\10.2.0\db_1\network\admin\sqlnet.ora已使用 HOSTNAME 适配器来解析别名
Attempting to contact (DESCRIPTION=(CONNECT_DATA=(SERVICE_NAME=liubo))(ADDRESS=(
PROTOCOL=TCP)(HOST=192.168.100.109)(PORT=1521))(ADDRESS=(PROTOCOL=TCP)(HOST=192.
168.6.210)(PORT=1521)))
OK (50 毫秒)另外:tnsname.ora 如下配置也试了老是 ORA-12514:TNS:无法解析指定的连接标识符
  LOCAL =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = liubo) 
    )
  )
网上找了半天,各种方法都试了还是没有解决,
另外,tnsname.ora如果配上其他网络机子的库如
35 =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 128.64.187.35)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SID = ride)
      (SERVER = DEDICATED)
    )
  )
这个是可以连接的,真的不知道本地为什么就不能访问

解决方案 »

  1.   

    有种情况是
    demo服务没有启动,报错后提示输入用户名和密码,会连到另外的服务上,楼主可以show parameter db_name看下
      

  2.   

    系统服务里面那个SID是什么,就把tnsname.ora里面那个
    (SERVICE_NAME = ) 的值改为这个SID,然后确保tns和那个oracle服务都启动了
      

  3.   

    看看你的环境变量 引用的是 你想要的那个bin目录下的 sqlplus么。如果你机器上装了客户端有装了服务器,会有两个sqlplus。如果你配置的是服务端的,而环境变量中客户端的在前,那么sqlplus调用的就是客户端的,你配置服务端自然就是不可以了。