OracleClient + TNSless соединение с.NET
Мы используем System.Data.OracleClient и абстрактные базовые классы DbConnection, DbCommand (и т. Д.) Для подключения к Oracle.
Связь прекрасно работает на наших этапах разработки. Во время постановки мы сталкиваемся с ошибкой ORA-12514: TNS: слушатель в настоящее время не знает об услуге, запрошенной в дескрипторе соединения.
Нашей целью было подключение без записи TNS и предоставление всей необходимой информации в строке подключения (www.connectionstrings.com/oracle#19)
Я могу подтвердить, что SQL plus будет подключаться к нужной схеме с промежуточного сервера (слушатель слушает). Запись TNS, подключенная к SQLPlus, соответствует всем учетным данным создаваемой строки запроса.
SERVER=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=MyHost)(PORT=MyPort))(CONNECT_DATA=(SERVICE_NAME=MyOracleSID)));uid=myUsername;pwd=myPassword;
Есть ли установка на сервер, который мы пропустили? Что-то, что мы можем настроить?
Любая помощь приветствуется.
4 ответа
SID не является именем службы. Имя службы - это обычно полное имя базы данных, а SID - короткий идентификатор.
Имя службы может быть dbname.company.com, а ваш SID - dbname. Экземпляр может фактически иметь несколько имен сервисов, связанных с ним, но только один SID.
Измените имя вашего SERVICE_NAME на SID в строке подключения или укажите имя службы для параметра SERVICE_NAME.
Если я правильно помню, у меня была та же проблема, пока я не переключился на использование провайдеров Oracle и OracleDbConnection и OracleDbCommand. Универсальные не всегда определяют правильного поставщика во всех случаях.
Если ваш клиент Oracle версии 10+, вы также можете использовать EZCONNECT (что означает метод именования Easy Connect). Ваша строка подключения будет выглядеть так:
"Data Source=MyHost:MyPort/MyServiceName;User ID=myUserName;Password=myPassword"
В сочетании с Oracle Instant Client это делает использование Oracle почти профессиональным!...
Microsoft устарела 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