ORA-12560: TNS: ошибка адаптера протокола: 64-разрядная версия Excel / 64-разрядная версия Windows 10 - PullRequest
0 голосов
/ 12 ноября 2018

Я использую сценарий VBA, который использовал для подключения к базе данных Oracle через 32-разрядную версию Excel, но теперь использую 64-разрядную версию Excel.

код VBA: Установите cn1 = Новое ADODB.Connection Set rs1 = Новый ADODB.Recordset cn1.ConnectionString = "Драйвер = {Microsoft ODBC для Oracle}; Сервер = BR1P1; Uid = BR1USER; Pwd = myPass" cn1.Open rs1.Open Query, cn1

Когда я выполняю «cn1.open», я получаю эту ошибку: «Ошибка во время выполнения» - 214746 ... [Microsoft] [Диспетчер драйверов ODBC] Не найдено имя источника данных и не указан драйвер по умолчанию "

Затем я попытался решить, добавив новый источник данных: Администратор источника данных ODBC (64-разрядная версия)> DSN файла> нажмите Добавить ...> из списка, который я выбрал: Oracle em OraClient11g_home1 («Oracle em» означает «Oracle for», моя ОС на португальском языке)> Далее> перейдите к файл: «C: \ Windows \ System32 \ odbcad32.exe»> Далее> Готово

В этом случае система выдаст мне имя драйвера: «Oracle em OracleClient11g_home1»

После этого он запросит имя службы, имя пользователя и пароль. Я сообщаю Имя сервера в соответствии с моим TNSNAMES.ORA

Вернуться к VBA Я изменил код в соответствии с именем драйвера: cn1.ConnectionString = "Driver = {Oracle em OracleClient11g_home1}"

Теперь, когда выполнить «cn1.Open» в VBA, я получаю это новое сообщение об ошибке:

«Ошибка времени выполнения» - 214746 ... [Oracle] [ODBC] ORA-12560: TNS: ошибка адаптера протокола "

Мой файл TNSNAMES.ORA выглядит так: BR1P1 = (ОПИСАНИЕ = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP) (HOST = myhost.com) (PORT = 1575))) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = BR1P1)))

Ну, я просто застрял на этом. Пожалуйста, я ценю любую помощь в этом. После того, как я сменил свой MS Office на 64-битную версию, это становится болью.

1 Ответ

0 голосов
/ 12 ноября 2018

Microsoft ODBC for Oracle существует только для 32-разрядных, поэтому вы не можете использовать его для 64-разрядных Excel.

Если вы хотите использовать 64-битный драйвер ODBC от Oracle, вы должны установить его. Загрузите драйвер из 64-разрядных компонентов доступа к данным Oracle (ODAC). Загрузки

Формат ConnectionString драйвера Oracle ODBC отличается от формата драйвера Microsoft ODBC, см.

Итак, для Oracle ваша ConnectionString

Driver={Microsoft ODBC for Oracle};Server=BR1P1;Uid=BR1USER;Pwd=myPass

будет

Driver={Oracle em OracleClient11g_home1};DBQ=BR1P1;Uid=BR1USER;Pwd=myPass
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...