blazebattle
118.04 MB · 2025-10-24
前几天遇到了ORA-12154&TNS-03505这个错误, 因为对其数据库环境不了解, 远程登录过去检查的时候, 了解到一些大概情况:此数据库安装在Windows服务器.远程客户端能登录数据库,但是本地服务器使用普通账号登录数据库时报ORA-12154错误,如下所示:
C:UsersAdministrator>sqlplus <user_name>/<passwod>@test
SQL*Plus: Release 19.0.0.0.0 - Production on Thu Oct 16 08:35:04 2025
Version 19.23.0.0.0
Copyright (c) 1982, 2023, Oracle. All rights reserved.
ERROR:
ORA-12154: TNS:could not resolve the connect identifier specified
Enter user-name:
使用tnsping检查报TNS-03505错误,如下所示:
C:UsersAdministrator>tnsping test
TNS Ping Utility for 64-bit Windows: Version 19.0.0.0.0 - Production on 14-OCT-2025 17:04:05
Copyright (c) 1997, 2024, Oracle. All rights reserved.
Used parameter files:
D:AppOracle19cproduct19.3db_1networkadminsqlnet.ora
TNS-03505: Failed to resolve name
检查D:AppOracle19cproduct19.3db_1networkadmintnsnames.ora中的网络服务名test的配置信息, 完全正确.没有任何问题.然后仔细检查,发现Windows环境变量中有两个Oracle Client的配置(当时不了解这些情况),具体如下所示:

C:UsersAdministrator>echo %path%
D:AppOracle19cproduct19.3db_1bin;C:Windowssystem32;C:Windows;C:WindowsSystem32Wbem;C:WindowsSystem32WindowsPowerShellv1.0;C:WindowsSystem32OpenSSH;D:Nuzarsurforacle_clientx64;C:UsersAdministratorAppDataLocalMicrosoftWindowsApps;
检查后发现这台机器上其实不仅仅安装了Oracle数据库软件,还安装一个Oracle instance client(D:Nuzarsurforacle_clientx64), 由于环境变量的顺序设置,决定了其优先级,此时读取的是Oracle instance client下的网络服务名,而这位朋友在(D:AppOracle19cproduct19.3db_1networkadmintnsnames.ora)这个路径下面的tnsnames.ora设置的网络服务名,其实此时没有生效,其实要么在(D:Nuzarsurforacle_clientx64)路径中的tnsnames.ora设置网络服务名,可以解决这个问题.也可以通过调整PATH的先后顺序解决这个问题. 如下所示:
我的电脑->属性->高级->环境变量,找到PATH变量进行顺序调整
另外,出现ORA-12154 & TNS-03505还有其它原因,2016年曾经总结过一篇ORA-12154 & TNS-03505 案例分享. 相同错误,不同案例. 这里就不重复展开了。
2025-10-24
一加 Ace 6 手机搭载超声波屏下指纹、金属中框,拥有 IP66/68/69/69K“满级防尘防水”
2025-10-24
Momenta赴美IPO获证监会备案,自动驾驶行业迎“上市潮”