3

我是 postgres 的新手,所以这个问题对其他人来说可能是一个相对容易的问题。但是,我花了很多令人沮丧的时间试图找出解决方案。我有一个元数据访问数据库,必须保持更新才能将记录发送给其他组。我还有一个使用 PostgreSQL 和 PGAdmin 的数据库,它也有这些相同的元数据表。目前,Postgres 数据库中的这些表通过将 Access 表导出为 excel 文件,然后将它们导入 SQL 表来手动更新。这不是最有效的过程,如果有人在运行任何查询之前忘记检查他们正在使用 Access 中的最新数据,则可能会导致 SQL 数据库出错。所以我想将我的 Access 数据库中的一些表与我的 Postgres 数据库集成。
最初,我尝试仅安装驱动程序以将 Access 表直接导出到 Postgres,这可以正常工作,但不是我想要的方式,因为它只是引入了一个我仍然需要手动更新的表。据我了解,我可以在 postgres 中创建一个服务器连接以进行访问,然后使用外部数据包装器引入更新的数据。我尝试使用 ogr_fdw。

CREATE EXTENSION ogr_fdw;

当我尝试:

CREATE SERVER metadata FOREIGN DATA WRAPPER ogr_fdw OPTIONS ( datasource 'H:\Databases\20170712.accdb', format 'ODBC' );

我收到:错误:无法连接到数据源“H:\Databases\20170712.accdb” SQL 状态:HV00D

当我尝试: CREATE SERVER metadata FOREIGN DATA WRAPPER ogr_fdw OPTIONS ( datasource 'H:\Databases\20170712.accdb', format 'ACCDB' );

我收到:错误:无法找到格式“ADDCB”提示:请参阅http://www.gdal.org/ogr_formats.html上的格式列表。
我也试过 MDB 并收到同样的错误。但是,MDB 是网站给出的代号,但它说它需要 JDK/JRE 来编译,我不确定这是否是我需要的另一种类型的驱动程序或者它是什么。

当我尝试: CREATE SERVER metadata FOREIGN DATA WRAPPER ogr_fdw OPTIONS ( datasource 'H:\Databases\20170712.mdb', format 'ODBC' );

我收到:错误:无法连接到数据源“H:\Databases\20170712.mdb” SQL 状态:HV00D 提示:无法为 DRIVER=Microsoft Access Driver (*.mdb) 初始化与 DSN 的 ODBC 连接;DBQ=H: \Databases\20170712.mdb, [Microsoft][ODBC Driver Manager] 未找到数据源名称且未指定默认驱动程序

但是,在查看 ogr_fdw 的 github 帮助页面后,我认为不需要 ODBC 和特殊驱动程序https://github.com/pramsey/pgsql-ogr-fdw/blob/master/FAQ.md

其中很多可能是由于我在阅读大量此类内容时对术语的了解有限。我的 Access 数据库也是一个 .accdb 文件,但由于它不起作用,我也尝试使用 mdb 和 ODBC 作为“格式”。如果有人有任何建议,我将不胜感激。
谢谢!

4

0 回答 0