微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ORA-12154: TNS: 无法解析指定的连接标识符 - Jenkins 设置

如何解决ORA-12154: TNS: 无法解析指定的连接标识符 - Jenkins 设置

我在 Jenkins 中使用 sqlplus 连接到我的远程 oracle 数据库。当我直接提供如下连接字符串时,它正在连接 -

工作 -

**sqlplus 'csar_ADM/password@(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(Host = server1.service2.kp.org)(PORT = 1521)) (CONNECT_DATA = (SERVICE_NAME = service2.pldc.kp.org) (SERVER = DEDICATED) ))'**

sql*Plus: Release 21.0.0.0.0 - Production on Fri Mar 26 16:40:57 2021
Version 21.1.0.0.0

copyright (c) 1982,2020,Oracle.  All rights reserved.

Last Successful login time: Fri Mar 26 2021 16:32:48 -07:00

Connected to:
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production

不工作 -

如果我尝试使用实例执行相同的命令,它不起作用

**sqlplus csar_ADM/password@service2.pldc.kp.org**

sql*Plus: Release 21.0.0.0.0 - Production on Fri Mar 26 16:40:57 2021
Version 21.1.0.0.0

copyright (c) 1982,Oracle.  All rights reserved.

ERROR:
ORA-12154: TNS:Could not resolve the connect identifier specified

相同的设置在我本地的 Windows 中运行良好,但在我的 Jenkins unix 服务器中失败

我尝试了以下 -

  1. 使用导出命令将 TNS_ADMIN 设置为指向目录(在 /netwrok/admin 和自定义目录中都尝试过)
  2. 验证目录中是否存在 TNSNAMES.ORA 并使用 Dos2Unix 命令转换文件
dos2unix -n TNSNAMES.ORA tmp_file
dos2unix: converting file TNSNAMES.ORA to file tmp_file in Unix format ...
mv -f tmp_file TNSNAMES.ORA
ls
  1. 使用导出命令设置 ORACLE_HOME

  2. 仔细检查了 TNSNAMES.ORA 的语法,完全没问题。相同的文件在我的 Windows 设置中运行良好

service2.pldc.kp.org =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = server1.service2.kp.org)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = service2.pldc.kp.org)
      (SERVER = DEDICATED)
    )
  )

这似乎只是 TNSNAMES.ORA 文件的问题,因为当我尝试使用连接详细信息进行连接时它工作正常。但我找不到修复方法。请帮忙

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。