将 Postgres DB 导出到 mdb

将 Postgres DB 导出到 mdb

我有几个可以通过 pgAdmin 3 访问的数据库,我有一个只能分析 .mdb 文件的软件。有人知道如何将 postgres db 转换/导出为 mdb 吗?最好通过 pgAdmin 3?

谢谢

答案1

您应该能够使用 ODBC 来使用 MS Access 文件(如果您有可用的 Windows 框)。这样,您可以编写一个小脚本来将数据库从一种格式转储为另一种格式,例如使用 python 使用 obdc、pyodbc 或 mxODBC 包。

一个简单的例子(在 Windows 上运行,没有真正测试过,您可能需要下载 psycopg2 包):

import odbc, psycopg2

odbc_conn = odbc.odbc("DSN=MY_ACCESS_DATABASE")
pg_conn = psycopg2.connect("host=server_name dbname=my_db user=godot password=???")

pg_curs = pg_conn.cursor()
odbc_curs = odbc_conn.cursor()

pg_curs.execute('select * from my_table')
for row in pg_curs.fetchall():
    # The format depends on your table, of course
    # With more work you can make it more generic, generating the 
    # format string from the type of the columns
    odbc_curs.execute('insert into my_table values (%s,%d,%d)' % row)

答案2

.MDB 是 MS Access,对吗?我怀疑 pgAdmin 3 能否做到这一点。如果 Access 可以处理 SQL,那么您可能可以将 Postgres 数据库转储为纯文本 SQL 并将其加载到 Access 中(我猜会进行一些小改动)。如果不行,那么您可能必须编写一个小程序,从 Postgres 读取并写入 Access/MDB。也许已经存在一个。我使用 Google 找到的大多数转换器都朝着另一个方向发展。

相关内容