ORA-12154: TNS:could 无法解析使用 TeamCity 指定的连接标识符

ORA-12154: TNS:could not resolve the connect identifier specified with TeamCity

目前,我正在尝试设置 TeamCity。在 TeamCity 参数中,我设置了以下值:

env.DeployConnectionString:  Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521))(CONNECT_DATA=(SERVER=DEDICATED)(SID=mySID)));User ID=sys;Password=mySysPassword;
env.Rdbms: Oracle
env.SqlPlusLogon: @mySID

当我 运行 TeamCity 项目时,它产生了这个错误:

C:\TeamCity\buildAgent\work32a5599bdcf4b9\myProject\myProject.proj(51, 7): error MSB3073: The command "sqlplus "sys/mySysPassword@mySID as sysdba" @KillSessions.sql C:\Database\Oracle" exited with code -1.

此外,当我尝试使用相同的参数从命令行登录 sqlplus 时,它失败并出现上述主题行中的错误。当我尝试使用此字符串从命令行登录 sqlplus 时,它没有问题:

sqlplus sys/mySysPassword@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521))(CONNECT_DATA=(SERVER=DEDICATED)(SID=mySID))) AS SYSDBA @KillSessions.sql

所以我的问题是,如何将 TeamCity 配置为使用底部连接字符串而不是顶部连接字符串?我以为这就是我在设置 env.DeployConnectionString 时所做的。有没有人有什么建议? TIA.

我认为它没有在这个命令中读取 SID:sys/mySysPassword@mySID。

为什么不将 SID 存储在 tnsnames.ora 中,并替换命令行中的 mySID 部分?

谢谢大家的帮助。通过将 env.SqlPlusLogon 更改为:

解决了上述问题
env.SqlPlusLogon: @(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=127.0.0.1)(PORT=1521))(CONNECT_DATA=(SERVER=DEDICATED)(SID=mySID)))