当我们尝试在 Windows 8.1 下的 Office 2013 32 位(!!!)中运行的 Excel 宏中使用 ODBC 连接到 Oracle 9.2 数据库时收到错误消息 ORA-01019。
我们在 Windows Server 2012 R2 下遇到了同样的问题。我们尝试了多个 Oracle 即时客户端版本和提供程序,但它们都给出了 ORA-01019。
但是在 Win 7 和 2k8 R2 下,使用 Office 2010 32 位和 Office 2013 32 位时一切都运行良好。
环境变量已正确设置。
我们能做什么?
谢谢 Ewert
答案1
不知道根本原因,我只是提出了一个非常丑陋的解决方法:带有 dblink 的中间数据库。因此,只是一个空的存根数据库,带有指向旧数据库的 dblink。
安装一些非常基本的数据库(可能是免费的,比如 Oracle XE)就CREATE PUBLIC DATABASE LINK my_old_db
可以了。使用与您的 Win8 兼容的版本,不知道,但也许 Oracle 11.2 可以。数据库不会保存任何数据,它只是充当一个通道。Oracle 11.2 可以数据库链接到 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
。这是因为在多个架构中定义同义词会更加复杂且容易出错。