PostgreSQL odbc_fdw(64 位)连接到 MS Access(64 位)
PostgreSQL odbc_fdw (64bit) Connection to MS Access (64bit)
我正在尝试 link 将现有的 MS Access 2013 表添加到 PostgreSQL 12 数据库中,这两个数据库都是 64 位版本并使用 odbc_fdw 安装在小型网络上。数据库位于 windows 网络上的不同机器上。我安装并检查了系统 DSN(使用 pyodbc)。
在 PostgreSQL 中,我能够创建扩展;外部数据包装器;外部服务器和外部 Table,并创建用户映射,但是当尝试 运行 查询时,我得到“错误:连接到驱动程序”。根据我发现的少量文献,我尝试了很多选择但没有任何运气。我可以使用 ocdb_fwd 直接连接到 MySQL 服务器,但我不知道如何使用 MSAccess 进行连接。
如果有人可以帮助我弄清楚如何将 MSAccess 连接到 fdw,我将不胜感激。
这些是我在 PostgreSQL 中的基本设置:
CREATE FOREIGN DATA WRAPPER odbc_data_wrapper
HANDLER public.odbc_fdw_handler
VALIDATOR public.odbc_fdw_validator;
CREATE SERVER odbc_msaccess
FOREIGN DATA WRAPPER odbc_data_wrapper
OPTIONS (dsn 'msaccess');
CREATE USER MAPPING FOR postgre SERVER odbc_msaccess
OPTIONS("ocdb_UID" 'Admin', "ocdb_pwd" '');
CREATE FOREIGN TABLE test(
id integer NOT NULL,
name character varying NOT NULL
)
SERVER odbc_msaccess
OPTIONS (layer 'test',
sql_query 'SELECT id, name FROM test);
DSN: msaccess working. Tested on pyodbc
odbc_data_wrapper: tested just fine connecting a MySql database
数据库在不同的机器上
是的,这可能行不通。
PostgreSQL 需要直接访问 Microsoft Access 数据库,因此它要么必须在同一台机器上,要么在网络共享上。但是如果你 运行 它在网络共享上,你需要确保用户 运行 PostgreSQL 可以访问网络共享,DSN 安装在 运行 PostgreSQL 机器上,并且您正确地引用了网络路径。
我正在尝试 link 将现有的 MS Access 2013 表添加到 PostgreSQL 12 数据库中,这两个数据库都是 64 位版本并使用 odbc_fdw 安装在小型网络上。数据库位于 windows 网络上的不同机器上。我安装并检查了系统 DSN(使用 pyodbc)。 在 PostgreSQL 中,我能够创建扩展;外部数据包装器;外部服务器和外部 Table,并创建用户映射,但是当尝试 运行 查询时,我得到“错误:连接到驱动程序”。根据我发现的少量文献,我尝试了很多选择但没有任何运气。我可以使用 ocdb_fwd 直接连接到 MySQL 服务器,但我不知道如何使用 MSAccess 进行连接。 如果有人可以帮助我弄清楚如何将 MSAccess 连接到 fdw,我将不胜感激。 这些是我在 PostgreSQL 中的基本设置:
CREATE FOREIGN DATA WRAPPER odbc_data_wrapper
HANDLER public.odbc_fdw_handler
VALIDATOR public.odbc_fdw_validator;
CREATE SERVER odbc_msaccess
FOREIGN DATA WRAPPER odbc_data_wrapper
OPTIONS (dsn 'msaccess');
CREATE USER MAPPING FOR postgre SERVER odbc_msaccess
OPTIONS("ocdb_UID" 'Admin', "ocdb_pwd" '');
CREATE FOREIGN TABLE test(
id integer NOT NULL,
name character varying NOT NULL
)
SERVER odbc_msaccess
OPTIONS (layer 'test',
sql_query 'SELECT id, name FROM test);
DSN: msaccess working. Tested on pyodbc
odbc_data_wrapper: tested just fine connecting a MySql database
数据库在不同的机器上
是的,这可能行不通。
PostgreSQL 需要直接访问 Microsoft Access 数据库,因此它要么必须在同一台机器上,要么在网络共享上。但是如果你 运行 它在网络共享上,你需要确保用户 运行 PostgreSQL 可以访问网络共享,DSN 安装在 运行 PostgreSQL 机器上,并且您正确地引用了网络路径。