我是postgres的新手,所以对于其他人来说这个问题可能相对容易。但是,我花了很多时间试图找出解决方案。我有一个元数据的Access数据库,必须保持更新才能将记录发送到其他组。我还有一个使用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初始化到DSN的ODBC连接= Microsoft Access驱动程序(* .mdb); DBQ = H:\ Databases \ 20170712.mdb, [Microsoft] [ODBC驱动程序管理器]未找到数据源名称且未指定默认驱动程序
但是我在查看gogub帮助页面后想到了ogr_fdw并不需要ODBC和特殊驱动程序https://github.com/pramsey/pgsql-ogr-fdw/blob/master/FAQ.md。
很多这可能是由于我在阅读很多这些内容时对术语的了解有限。我的Access数据库也是一个.accdb文件,但由于那不起作用,我尝试使用mdb和ODBC作为"格式"太。如果有人有任何建议我会非常感激。
谢谢!