首先对于分我从不吝啬,根据问题难度就给大家分,对了绝对马上给分啰!!现在有一个问题,很基础。我在今天创建了一个oracle数据库,以供测试之用,可是我用pl/sql developer登陆的时候总是提示:ora-12514 :TNS:listener does not currently know of service requested in connect decriptor 
然后我就用sql*plus进行登陆,发现非常正常!我就非常不明白,怎么会出这样的问题?我现在进不了pl/sql developer呀!!!求大家帮个忙呀

解决方案 »

  1.   

    http://blog.ccidnet.com/blog.php?do=showone&uid=11521&type=blog&itemid=205274
      

  2.   

    监听和本地服务名配置的问题,还有看看防火墙
    pl/sql developer连接oracle走的是网络,需要配监听和服务名,
    本机sqlplus连接oracle不带连接字符串(“@xxx”)的时候不走网络,所以根本不需要监听和服务名。
      

  3.   

    我的listener.ora文件为:
    # listener.ora Network Configuration File: c:\oracle\product\10.1.0\Db_1\network\admin\listener.ora
    # Generated by Oracle configuration tools.SID_LIST_LISTENER =
      (SID_LIST =
        (SID_DESC =
          (SID_NAME = PLSExtProc)
          (ORACLE_HOME = c:\oracle\product\10.1.0\Db_1)
          (PROGRAM = extproc)
        )
      )LISTENER =
      (DESCRIPTION_LIST =
        (DESCRIPTION =
          (ADDRESS_LIST =
            (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
          )
          (ADDRESS_LIST =
            (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
          )
        )
      )
      

  4.   

    你的监听和服务打开是对的 
    但是pl/sql developer连接数据库的时候 会读取tnsname.ora 中配置的数据所以你最好检查下 tnsname.ora中是否配置有问题
      

  5.   

    仔细看一下 tnsname.ora,可能是这的问题
      

  6.   

    需要监听,还有用netca配本地服务名,不是“服务”
      

  7.   

    使用net configuration assistant配置本地指向Oracle服务器端的服务名(连接串),
    服务器使用IP地址,测试成功后,再使用pl/sql:conn 用户名/密码@连接串。
      

  8.   

    我的 tnsname.ora:
    # tnsnames.ora Network Configuration File: c:\oracle\product\10.1.0\Db_1\network\admin\tnsnames.ora
    # Generated by Oracle configuration tools.
    INFO =
      (DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = TCP)(HOST = 10.175.183.118)(PORT = 1521))
        )
        (CONNECT_DATA =
          (SERVICE_NAME = info)
        )
      )
    EXTPROC_CONNECTION_DATA =
      (DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
        )
        (CONNECT_DATA =
          (SID = PLSExtProc)
          (PRESENTATION = RO)
        )
      )
      

  9.   

    10.175.183.118 是本机的地址?conn user/pass@info 
      

  10.   

    侦听 listener 侦听的服务和客户端请求连接的服务名称不符。(CONNECT_DATA = 
          (SERVICE_NAME = info)
    ===================================在服务器端用 lsnrctl status 命令确认一下 listener 有没有为 info 数据库库提供侦听。
      

  11.   

    你用sqlplus登陆时用的tnsname相应的你用plsql也要使用这个数据库名
      

  12.   

    PL/SQL里面要设置oracle home在tools下配置,也许你是先安装plsql再安装oracle的
      

  13.   

    看看listener起来了没?看看tns配置对不对?
      

  14.   

    在"运行"窗口或CMD环境下,执行   sqlplus [username]/[password]@[servicename] ,看能否连接进入,如果能成功连接,pl/sql 应无问题.
    其中servicename为tnsname.ora中定义的服务名,如果就是INFO,可以先试着修改为如下:
    INFO = 
      (DESCRIPTION = 
        (ADDRESS_LIST = 
          (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521)) 
        ) 
        (CONNECT_DATA = 
          (SERVICE_NAME = info) 
        ) 
      ) 
      

  15.   

    1.sqlplus登录数据库,然后:alter system register;
    2.再用plsql dev登录。
      

  16.   

    解决方法:
    在listener.ora文件中添加以下内容:
    (SID_DESC =
    (GLOBAL_DBNAME = orcl)
    (ORACLE_HOME = D:\oracle\product\10.2.0\db_1) 
    (SID_NAME = orcl)
    )
      

  17.   

    LISTENER =
      (DESCRIPTION_LIST =
        (DESCRIPTION =
          (ADDRESS_LIST =
            (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
          )
          (ADDRESS_LIST =
            (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
          )
        )
      ) 把localhost改成机器名看看
      

  18.   

    # listener.ora Network Configuration File: c:\oracle\product\10.1.0\Db_1\network\admin\listener.ora
    # Generated by Oracle configuration tools.SID_LIST_LISTENER =
      (SID_LIST =
        (SID_DESC =
          (SID_NAME = PLSExtProc)
          (ORACLE_HOME = c:\oracle\product\10.1.0\Db_1)
          (PROGRAM = extproc)
        )
      )LISTENER =
      (DESCRIPTION_LIST =
        (DESCRIPTION =
          (ADDRESS_LIST =
            (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
          )
          (ADDRESS_LIST =
            (ADDRESS = (PROTOCOL = TCP)(HOST = 10.175.183.118)(PORT = 1521))
          )
        )
      ) --将以上改到listener.ora中
    再执行:
    c:\>lsntctl stop
    c:\>lsntctl start然后用pl/sql dev连接就可以了.