.net - OracleClient + 与 .NET 的无 TNS 连接

标签 .net oracle database-connection ora-12514

我们使用 System.Data.OracleClient 和抽象基类 DbConnection、DbCommand(等)连接到 Oracle。

连接在我们的开发阶段工作正常。在暂存期间,我们遇到错误 ORA-12514:TNS:监听器当前不知道连接描述符中请求的服务。

我们的目标是在没有 TNS 条目的情况下进行连接,并在连接字符串中提供所有相关信息 (www.connectionstrings.com/oracle#19)

我可以确认 SQL plus 将从登台服务器(监听器正在监听)连接到所需的模式。连接到 SQLPlus 的 TNS 条目与正在构建的查询字符串的所有凭据相匹配。

SERVER=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=MyHost)(PORT=MyPort))(CONNECT_DATA=(SERVICE_NAME=MyOracleSID)));uid=myUsername;pwd=myPassword;

我们错过了服务器上的安装吗?我们可以调整什么?

感谢任何帮助。

最佳答案

SID 不是服务名称。服务名称通常是完全限定的数据库名称,而 SID 是短标识符。

服务名称可能是 dbname.company.com,而您的 SID 是 dbname。一个实例实际上可以关联多个服务名称,但只能关联一个 SID。

在连接字符串中将 SERVICE_NAME 更改为 SID,或为 SERVICE_NAME 选项指定服务名称。

关于.net - OracleClient + 与 .NET 的无 TNS 连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1492786/

相关文章:

c# - 在 .Net core 2.0 中使用 AES 和 PKCS#7 填充时,指定的填充模式对此算法无效

sql - JOIN 的 ON 子句中引用的表的顺序是否重要?

java - 无法从java向数据库添加新用户

c# - 从 .Net 连接到 Informix 数据库

C++ 简单字符检查

.net - 为什么 .NET 不记录 StackOverflow 异常的堆栈跟踪?

c# - 在 C# 中使用正则表达式捕获字符串中的数值

oracle - 顶点 : Download BLOB from temporary table

android - JSON 解析很可能出错

c# - 如何使用端口数据接收事件连接mysql数据库