Как настроить строку подключения OraOLEDB

Мне нужна помощь в настройке подключения к Oracle DB.

У меня есть приложение Excel VBA, использующее следующую рабочую строку подключения, устанавливающую правильное подключение к существующей базе данных Oracle:

Provider = OraOLEDB.Oracle; 
Data Source = XXXXSSA5; 
User Id = [USERNAME]; Password = [PASSWORD];

Недавно база данных была перенесена на новую локализацию, следующая строка подключения отлично работает с sqlplus, однако я понятия не имею, как правильно представить ее в виде строки подключения OraOLEDB:

[USERNAME]/[PASSWORD]@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(Host=symbol.server.company.net)(Port=1731))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=DDDB1044_APP)))

Я попытался заполнить последний шаблон новыми данными:

Provider = OraOLEDB.Oracle; 
Data Source = DDDB1044_APP; 
User Id = [USERNAME]; Password = [PASSWORD];

Однако я предполагаю, что мне нужно каким-то образом передать имя хоста в строку подключения и, возможно, порт, так как я получаю сообщение: ORA-12154: TNS: не удалось разрешить указанный идентификатор подключения


person Grzegorz Podolski    schedule 06.08.2019    source источник


Ответы (1)


Обычно вы определяете псевдоним в файле tnsnames.ora следующим образом:

DDDB1044_APP = (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(Host=symbol.server.company.net)(Port=1731))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=DDDB1044_APP)))

Затем используйте этот псевдоним Data Source = DDDB1044_APP;

Если вам не нравится работать с псевдонимом, просто поместите на него все соединение:

Data Source = "(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(Host=symbol.server.company.net)(Port=1731))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=DDDB1044_APP)))"
person Wernfried Domscheit    schedule 06.08.2019