我们有一个本地运行的应用程序,我们遇到了以下错误。
ORA-12514:TNS:listener当前不知道所请求的服务 在连接描述符中
我已经用TNSPing
测试了连接,结果是正确的。
我试着用SQLPlus
来尝试连接,结果失败了,出现了和上面一样的错误。我对SQLPlus
使用了这种语法。
sqlplus username/password@addressname[or host name]
我们已经验证了。
我们不知道在这个环境中做了什么改变。 还有什么我们可以测试的吗?
我遇到了这个问题,解决方法是确保tnsnames.ora
中的SERVICE_NAME
是你数据库中的有效服务名称。为了找出有效的服务名称,你可以在oracle中使用以下查询。
select value from v$parameter where name='service_names'
一旦我将tnsnames.ora
更新为。
TEST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = *<validhost>*)(PORT = *<validport>*))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = *<servicenamefromDB>*)
)
)
然后我运行了。
sqlplus user@TEST
成功了! 监听器基本上是在告诉你,根据数据库,你所使用的服务名称不是一个有效的服务。
(我从Win7客户端工作站运行sqlplus到远程数据库,并责怪DBA们;))