我需要使用.accdb数据库,为此需要将其导入PostgreSQL。我相信这将是一个简单而直接的问题(我预计它已经解决了),但一个简单的解决方案让我感到惊讶。
我将补充说我无法访问Access(lol),我的解决方案依赖于此。如果那是不可能的,我可以找到有访问权限的人,并让他们将每个表转换成.csv或类似的东西。
答案 0 :(得分:3)
您不需要在计算机上安装MS Access来从Access数据库引擎文件中读取数据。
自Windows 2000以来,Windows的所有副本都附带Access数据库引擎;但这将是Jet 4.0引擎,您将需要ACE(2007)引擎的组件。令人高兴的是,它可以从Microsoft下载2007 Office System Driver: Data Connectivity Components。
任何支持com对象的编程语言都可以在不安装MS Access的情况下解除数据。你甚至可以在这里使用Windows脚本,甚至不在你的Windows机器上安装任何软件。
以下代码适用于Access数据库引擎的Jet mdb版本,但您可以使用ACEDAO调整它以满足您的需求:
Set dbEng = CreateObject("DAO.DBEngine.36")
strMdbFile = "C:\Documents and Settings\" & _
"Albert\My Documents\Access\" & _
"ScriptExample\MultiSelect.mdb"
Set db = dbEng.OpenDatabase(strMdbFile)
strQuery = "select * from contacts"
Set rs = db.OpenRecordset(strQuery)
rs.MoveFirst
If rs.EOF = True Then
Quit
End If
strTextOut = "C:\t5.txt"
Set fs = Wscript.CreateObject("Scripting.FileSystemObject")
Set ts = fs.OpenTextFile(strTextOut, 2, True)
'2 = write, 1 = read
Do While rs.EOF = False
strOutText = rs("LastName")
ts.Writeline strOutText
rs.MoveNext
Loop
ts.Close
rs.Close
但是,实际上,如果这是一次性导出,那么找一个拥有MS Access副本的人会减少工作量,但是您无需安装任何软件就可以读取访问文件。事实上,如上所述,即使是原始安装的Windows也允许您使用上面的Windows脚本文件,该文件也可以在Windows框中没有安装任何软件的情况下运行。
答案 1 :(得分:2)
一个选项是Excel,因为它可以读取Access数据文件。
另一个是MDB Tools是一组开源库和实用程序,以便于在不使用Microsoft DLL的情况下从MS Access数据库(mdb文件)导出数据。因此,非Windows操作系统可以读取数据。
答案 2 :(得分:1)
如果您可以将每个表保存为CSV个文件,则只需将其导入许多DBMS,包括PostgreSQL。