连接oracle数据库报错,报错信息为:ORA-12514: TNS:listener could not resolve SERVICE_NAME given in connect Descriptor.
ORA-12514 是一个 Oracle 错误代码,表示在使用 TNS服务名连接数据库时出现问题。这种错误通常与连接描述符中的服务名不匹配有关,因此通过确保服务名与数据库中的实际服务名匹配,可能解决这个问题。
以下是简要步骤:
-
运行以下查询以获取数据库中有效的服务名:
select value from v$parameter where name='service_names';
这将显示数据库中有效的服务名。
-
打开
tnsnames.ora
文件,更新您的连接描述符中的SERVICE_NAME
部分,确保它与数据库中查询到的有效服务名匹配。例如:YOUR_CONNECTION_NAME = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP) (HOST = <validhost>) (PORT = <validport>)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = <servicenamefromDB>) ) )
将
<validhost>
替换为有效的主机名,<validport>
替换为有效的端口号,以及<servicenamefromDB>
替换为从查询中获取的有效服务名。
通过更新 tnsnames.ora
文件中的连接描述符,确保它与数据库中的服务名匹配,应该能够解决ORA-12514错误。这种方法充分利用了连接描述符和数据库配置之间的一致性,从而确保正确的连接。