首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ORA-12154错误TNS无法解析指定的连接。

ORA-12154错误TNS无法解析指定的连接。
EN

Stack Overflow用户
提问于 2018-09-20 09:29:27
回答 2查看 6.8K关注 0票数 1

在运行java应用程序时,我得到了ORA- 12154错误。在java应用程序中,我们必须使用数据库凭据登录。对于某些用户凭据,应用程序正在成功运行,但对于另一些用户来说,它正在抛出错误ora-12154:TNS:未能解析指定的连接标识符。

有人能帮我解决这个问题吗。

EN

回答 2

Stack Overflow用户

发布于 2018-09-20 09:43:54

最常见的原因是数据库别名(连接到的)没有包含在TNSNAMES.ORA文件中。

如果您有几个甲骨文软件产品,很有可能每个产品都有自己的TNSNAMES.ORA文件(通常位于其\network\admin目录中)。它的方法是同时编辑所有这些文件(这是愚蠢的),或者创建一个TNS_ADMIN环境变量,它将指向包含“主”TNSNAMES.ORA文件的目录,如我所拥有的:

代码语言:javascript
复制
M:\>set tns_admin
TNS_ADMIN=C:\0_Oracle_library

因此,每次我必须添加一个新的数据库时,我都会编辑该TNSNAMES.ORA文件和我的所有程序(表单、报表、SQL、TOAD、SQL*Plus、.)访问并使用它。

票数 2
EN

Stack Overflow用户

发布于 2018-09-20 09:57:02

Oracle错误代码文档提供了一些有用的故障排除技巧(以下来自12.1):

ORA-12154: TNS:无法解析指定的连接标识符 原因:使用连接标识符请求到数据库或其他服务的连接,而指定的连接标识符无法使用配置的命名方法之一解析为连接描述符。例如,如果使用的连接标识符类型是一个网络服务名称,则无法在命名方法存储库中找到该网络服务名称,或者无法找到或到达该存储库。 行动: 如果使用本地命名(TNSNAMES.ORA文件):

  • 确保将"TNSNAMES“列为Oracle (SQLNET.ORA)中SQLNET.ORA参数的值之一。
  • 验证TNSNAMES.ORA文件是否存在,是否位于正确的目录中,并且是可访问的。
  • 检查TNSNAMES.ORA文件中是否存在用作连接标识符的网络服务名称。
  • 确保TNSNAMES.ORA文件中任何地方都没有语法错误。查找不匹配的括号或散乱字符。TNSNAMES.ORA文件中的错误可能使其成为使用目录命名的unusable.If:
  • 验证"LDAP“被列为Oracle (SQLNET.ORA)中的NAMES.DIRETORY_PATH参数的值之一。
  • 验证LDAP目录服务器是否已打开并可访问。
  • 验证是否在目录中配置了用作连接标识符的网络服务名称或数据库名称。
  • 通过指定完全限定的网络服务名称或完整的LDAP作为连接identifier.If,验证所使用的默认上下文是否正确,您使用的是轻松连接命名:
  • 验证"EZCONNECT“被列为Oracle (SQLNET.ORA)中的SQLNET.ORA参数的值之一。
  • 确保指定的主机、端口和服务名称正确。
  • 尝试将连接标识符封装在引号中。有关命名的详细信息,请参阅Oracle Net Services管理员指南或Oracle操作系统特定指南。

首先检查是否可以tnsping指定的服务(tnsping是包含在Oracle中的实用程序)。例如,如果连接为x/y@zzz与ORA-12154失败,那么

代码语言:javascript
复制
tnsping zzz

这可能会给

代码语言:javascript
复制
TNS-03505: Failed to resolve name

但它还将显示上述本地sqlnet.ora参数文件的路径。根据您的设置,应该在同一位置有其他.ora文件。

根据您的操作系统、Oracle客户端和名称解析设置,可以使用多种方法来配置。(注意,tnsnames.ora文件不是唯一的命名方法。)如果你分享一些更多的细节,那么解决这个问题应该是很简单的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52421827

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档