Назад | Перейти на главную страницу

ORA-01019 под Win 8.1 / Server 2012 R2, ODBC Excel

Мы получаем сообщение об ошибке ORA-01019 при попытке подключиться к базе данных Oracle 9.2 с ODBC в макросе Excel, запущенном в 32-битном (!!!) Office 2013 под Windows 8.1.

У нас такая же проблема под Windows Server 2012 R2. Мы пробовали несколько версий и поставщиков мгновенных клиентов Oracle, но все они дают нам ORA-01019.

Но все работает как можно лучше под Win 7 и 2k8 R2 с 32-разрядной версией Office 2010 и 32-разрядной версией Office 2013.

Переменные среды установлены правильно.

Что мы могли сделать?

спасибо Эверт

Понятия не имею о первопричине, я просто предлагаю очень уродливый обходной путь: промежуточная база данных с dblink. Итак, просто пустая база данных-заглушка со ссылкой на старую базу данных.

Установите очень простую базу данных (возможно, бесплатную, например Oracle XE) и CREATE PUBLIC DATABASE LINK my_old_db там. Используйте версию, совместимую с вашей Win8, не знаю, но, возможно, подойдет Oracle 11.2. База данных не будет содержать никаких данных, она просто действует как сквозная передача. Oracle 11.2 может dblink на Oracle 9.2.

Соберите все полезные имена таблиц / представлений / еще чего в схеме, к которой вы ранее подключились, используя SELECT * FROM user_objects; и для каждого определения: CREATE PUBLIC SYNONYM my_table AS my_table@my_old_db. Таким образом, если вы подключаетесь к транзитной базе данных, и вы можете выполнить свой выбор и просмотреть данные старой базы данных.

Если Excel также запрашивает другие схемы, возможно, лучше немного изменить макросы и то, где у вас SELECT a, b, c FROM sue.her_table ты мог бы положить SELECT a, b, c FROM sue.her_table@my_old_db . Это связано с тем, что определение синонимов в нескольких схемах было бы намного сложнее и подвержено ошибкам.