我们使用System.Data.OracleClient和抽象基类DbConnection、DbCommand(等)连接到Oracle。
在我们的开发阶段,连接工作正常。在staging期间,我们遇到错误ORA-12514:侦听器当前不知道连接描述符中请求的服务。
我们的目标是在没有TNS条目的情况下进行连接,并在连接字符串中提供所有相关信息(www.connectionstrings.com/oracle#19)
我可以确认SQL plus将从临时服务器连接到所需的模式(侦听器正在侦听)。
SERVER=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=MyHost)(PORT=MyPort))(CONNECT_DATA=(SERVICE_NAME=MyOracleSID)));uid=myUsername;pwd=myPassword;
服务器上有没有我们遗漏的安装程序?我们可以修改的?
任何帮助都很感激。
4条答案
按热度按时间mum43rcc1#
SID不是服务名。服务名通常是完全限定的数据库名,而SID是短标识符。
服务名可能是dbname.company.com,而SID是dbname。一个示例实际上可以有多个服务名与之关联,但只能有一个SID。
在连接字符串中将SERVICE_NAME更改为SID,或为SERVICE_NAME选项指定服务名称。
9rygscc12#
如果我没记错的话,我遇到了同样的问题,直到我切换到使用Oracle提供程序以及OracleDbConnection和OracleDbCommand。
zrfyljdw3#
如果您的Oracle客户端是版本10+,您还可以使用EZCONNECT(代表Easy Connect命名方法)。您的连接字符串将如下所示:
与Oracle Instant Client相结合,它使Oracle的使用感觉几乎是专业的!
bgtovc5b4#
Microsoft已弃用
System.Data.OracleClient
。请参阅this post。