我们使用System.Data.OracleClient和抽象基类DbConnection、DbCommand (等)连接到Oracle。
这种连接在我们的开发阶段运行得很好。在暂存期间,我们遇到错误ORA-12514: TNS:listener当前不知道连接描述符中请求的服务。
我们的目标是在没有TNS条目的情况下进行连接,并在连接字符串中提供所有相关信息(www.connectionstring s.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;我们错过的服务器上有安装吗?有什么我们可以调整的吗?
任何帮助都是非常感谢的。
发布于 2009-09-29 15:00:42
SID不是服务名称。服务名称通常是完全限定的数据库名称,而SID是简短的标识符。
服务名可以是dbname.company.com,而您的SID可以是dbname。一个实例实际上可以有多个关联的服务名称,但只能有一个SID。
在连接字符串中将SERVICE_NAME更改为SID,或者为SERVICE_NAME选项指定您的服务名称。
发布于 2009-09-29 14:12:36
如果我没记错的话,我也遇到过同样的问题,直到我改用Oracle提供程序以及OracleDbConnection和OracleDbCommand。泛型并不总是在所有情况下都实例化正确的提供程序。
发布于 2009-09-29 14:14:53
微软已弃用System.Data.OracleClient请参阅本文:http://blogs.oracle.com/databaseinsider/2009/07/microsoft_deprecates_systemdataoracleclient_net_developers_for_oracle_should_migrate_to_oracle_data_provider_for_net.html
https://stackoverflow.com/questions/1492786
复制相似问题