我有一个连接到oracle数据库的独立工作站。它已经工作了好几年,然后突然间我得到一个错误:
[INTERSOLV] [ODBC Oracle驱动程序] [Oracle] ORA-12545:TNS:名称查找失败
当我ping服务器时,我试图从命令提示符连接到它,它会回复正确的IP地址。如果我进行TNSPING,那似乎也没问题。
我在计算机网络上有一台单独的PC,它连接到服务器就好了 - 上面没有粗体错误。
我在另一台PC上连接了另一个不同的oracle数据库,它仍然正常工作。所以,这并不像我失去了连接任何或所有Oracle数据库的能力 - 只是关于这个数据库。
我很困惑,为什么它不起作用,并且没有任何运气试图解决它。我不知道该怎么办。
任何帮助都将不胜感激。
答案 0 :(得分:1)
尝试将环境变量TNS_ADMIN定义为指向TNSNAMES.ORA文件所在的位置。
编辑:
您可以直接连接SQL * Plus吗?
如果安装了,这应该有效(用userid和数据库替换user和db来连接):
sqlplus user@db
如果失败,请尝试与EZCONNECT:
联系修改sqlnet.ora文件:
NAMES.DIRECTORY_PATH=(TNSNAMES,EZCONNECT)
在Oracle ODBC Driver Configuration向导中更改ODBC连接以使用EZCONNECT字符串:
将TNS服务名称替换为:
<db_host>:port/<db_name>
例如,
MYHOST:1521/MYDB
这指向主机MYHOST端口1521(默认端口)上的数据库MYDB。
尝试测试连接。如果失败,请尝试使用IP地址而不是主机名。
根据您的评论提供您的TNSNAMES条目:
ESTRNP = (DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = ESTRNP)(PORT = 1521))
)
(CONNECT_DATA = (SID = ESTRNP))
)
您可以尝试将CONNECT_DATA行更改为:
(CONNECT_DATA = (SERVICE = ESTRNP))
可能数据库的SID已更改。此条目是否与有效机器上的条目相同?
答案 1 :(得分:0)
你最近安装过任何其他oracle软件吗?
您可能在不同位置有多个tnsnames.ora
文件,并且odbc驱动程序发现错误的文件。
检查路径环境变量,指向右侧的路径是否位于第一位。