Sql-Server

MS SQL Server 2008:如何將所有表導出為 CSV?

  • January 23, 2017

我必須從 MS SQL Server 遷移,現在創建一個新的 ORACLE 數據庫,其中部分數據來自我的舊表。

為此,我需要從幾十個表中獲取數據作為 unicode CSV 或 TXT 文件,欄位由“|”分隔。

壞處是 MS SQL Server 的預設導出大師一次只能導出一個表,並且為每個表配置導出選項需要相當長的時間。我開始手動導出它們,但我在第 10 桌時感到緊張。

您知道如何將所有表從 SQL Server 導出為 csv 或 txt 嗎?

更強大的解決方案是使用 Oracle Migration Workbench。這曾經是一個獨立於 Oracle 的實用程序,但現在包含在Oracle SQL Developer中。如果你和 CLOB/BLOB 數據類型,那麼這是要走的路。您還應該閱讀有關如何遷移的 Oracle文件,因為 SQL Developer 遷移界面不是很直覺。

如果您確實想將所有表導出到 csv,您可以使用BCPSSIS。關於使用一些 t-sql 和為數據庫中的所有表生成 bcp 導出命令的simple-talk有一篇非常好的文章。您還可以使用平面文件目標任務創建簡單的 SSIS 包以將所有表導出到 csv。

這是一些快速而骯髒的東西,它將為您生成 BCP 命令。在 SSMS 中執行它,在命令提示符下執行輸出。

           USE AdventureWorks
SELECT 'bcp ' +
           QUOTENAME(DB_NAME())
           + '.'
           +QUOTENAME(SCHEMA_NAME(schema_id))
           + '.'
           +QUOTENAME(name)
           + ' '+'out'+' '
           + name + '.csv -w -t"|" -E -S '
           + @@servername
           + ' -T'
   FROM sys.objects
   WHERE TYPE='u'
       AND is_ms_shipped=0

引用自:https://serverfault.com/questions/210526