首先对于分我从不吝啬,根据问题难度就给大家分,对了绝对马上给分啰!!现在有一个问题,很基础。我在今天创建了一个oracle数据库,以供测试之用,可是我用pl/sql developer登陆的时候总是提示:ora-12514 :TNS:listener does not currently know of service requested in connect decriptor
然后我就用sql*plus进行登陆,发现非常正常!我就非常不明白,怎么会出这样的问题?我现在进不了pl/sql developer呀!!!求大家帮个忙呀
然后我就用sql*plus进行登陆,发现非常正常!我就非常不明白,怎么会出这样的问题?我现在进不了pl/sql developer呀!!!求大家帮个忙呀
pl/sql developer连接oracle走的是网络,需要配监听和服务名,
本机sqlplus连接oracle不带连接字符串(“@xxx”)的时候不走网络,所以根本不需要监听和服务名。
# 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))
)
)
)
但是pl/sql developer连接数据库的时候 会读取tnsname.ora 中配置的数据所以你最好检查下 tnsname.ora中是否配置有问题
服务器使用IP地址,测试成功后,再使用pl/sql:conn 用户名/密码@连接串。
# 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)
)
)
(SERVICE_NAME = info)
===================================在服务器端用 lsnrctl status 命令确认一下 listener 有没有为 info 数据库库提供侦听。
其中servicename为tnsname.ora中定义的服务名,如果就是INFO,可以先试着修改为如下:
INFO =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = info)
)
)
2.再用plsql dev登录。
在listener.ora文件中添加以下内容:
(SID_DESC =
(GLOBAL_DBNAME = orcl)
(ORACLE_HOME = D:\oracle\product\10.2.0\db_1)
(SID_NAME = orcl)
)
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
)
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
)
)
) 把localhost改成机器名看看
# 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连接就可以了.