簡體   English   中英

SQL將Microsoft Access sql轉儲導入Postgres

[英]SQL Importing Microsoft Access sql dump to Postgres

我有一個Microsoft Access SQL轉儲,我試圖使用psql -f選項導入,但是在導入時出錯。 所以有一種方法可以將這個SQL轉儲轉換為支持Postgres格式。

我已經看到一些可以將mdb文件隱藏到相應表中的工具,但是它們沒有保留現有轉儲具有的關系和其他約束,並且我想保留在導入中。

# psql -U postgres -f test.sql
psql:test.sql:63: invalid command \Administrators]
psql:test.sql:570: ERROR:  syntax error at or near "Use"
LINE 1: Use [master]
        ^

轉儲包含如下內容

Use [master]
 GO
 EXEC dbo.sp_dbcmptlevel @dbname=N'test', @new_cmptlevel=90
 GO
 IF (1 = FULLTEXTSERVICEPROPERTY('IsFullTextInstalled'))
 begin
 EXEC [test].[dbo].[sp_fulltext_database] @action = 'enable'
 end
 GO
 ALTER DATABASE [test] SET ANSI_NULL_DEFAULT OFF

 . . . .


 IF NOT EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_ClassOfService_PBX]') AND parent_object_id = OBJECT_ID(N'[dbo].[ClassOfService]'))
ALTER TABLE [dbo].[ClassOfService]  WITH CHECK ADD  CONSTRAINT [FK_ClassOfService_PBX] FOREIGN KEY([PBX])
REFERENCES [dbo].[PBX] ([ID])
ON UPDATE CASCADE
ON DELETE CASCADE
GO
. . . 

那么有沒有一種方法可以導入數據。

您將需要將轉儲加載回MS Access,然后使用工具通過ODBC或類似工具從實時MS Access中提取數據。 Milen已經指出PostgreSQL Wiki上列出幾個 還有一些通用的ETL工具,例如Talend Studio,Pentaho Kettle和CloverETL,用於數據遷移。

如果只能使用轉儲,則可能必須手動轉換語法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM