2009-11-13 90 views
4

我想從SQL Server 2005中導出一些表格,然後創建這些表格並將它們填充到Oracle中。從SQL Server導出表格導入到Oracle 10g

我有大約10桌,同比增長25。我沒有使用任何約束/鍵所以這應該是相當簡單的從4列不同。

首先我生成的腳本,以獲得表結構,然後修改它們以符合與Oracle語法標準(即改變了nvarchar的爲VARCHAR2)

接下來,我使用其創建一個csv平坦SQL服務器導出嚮導導出的數據文件。然而,我的主要問題是,我找不到強制SQL Server雙引號列名稱的方法。我的其中一列包含逗號,所以除非我能找到SQL服務器引用列名的方法,否則在導入它時會遇到麻煩。

另外,我要走困難的路線,還是有更簡單的方法來做到這一點?

感謝

編輯:引述我指的在CSV引用的列值。比如我有一個包含像

101高街,Sometown,有些 縣的地址列,PO5TC053

沒有它更改爲以下,這將加載CSV

時造成的問題

「101高街,Sometown,有些 縣,PO5TC053」

回答

4

尋找與的SQLDeveloper一些選項,或嘗試手動導出/導入後,我發現在SQL Server Management Studio中一個實用程序,得到預期的效果,並且易於使用,請執行下列操作

  1. 轉到SQL Server上的源架構
  2. 右鍵點擊>導出數據
  3. 選擇源作爲當前架構
  4. 選擇目的地「甲骨文OLE提供商」
  5. 選擇屬性,T母雞添加該服務名到第一個框中,然後用戶名和密碼,請務必點擊「記住密碼」
  6. 輸入查詢,從而獲得所需結果被遷移
  7. 輸入表名,然後單擊「編輯」按鈕
  8. 阿爾特映射,改變nvarchars爲VARCHAR2和INTEGER到NUMBER
  9. 運行
  10. 重複剩餘表過程中,保存爲工作,如果你需要在未來
再次做到這一點
1

正如羅伯特所說,我強烈建議再次引用列名。結果是你不僅需要在導入數據時引用它們,而且還需要在SQL語句中引用該列 - 當然,這也可能意味着在你的程序代碼中。構建SQL語句變得非常麻煩!

從你寫的是什麼,我不知道你指的是列名或在這些列中的數據。 (可SQLServer的真的有一個逗號列?我會非常驚訝,如果有應該是一個很好的理由!)報價列的內容應該對任何弦列完成(雖然我發現,其他角色通常工作得更好,因爲需要「逃脫」引號成爲另一個問題)。如果你用CSV導出應該是一個選項..但是我不熟悉導出嚮導。

另一個想法用於移動數據(根據項目的規模)將使用ETL/EAI工具。我一直在玩Pentaho套件和Kettle組件。它提供了將數據從一個地方移動到另一個地方的多種選擇。對於簡單的傳輸來說可能有點過大,但如果它與相應的音量有很大的「遷移」,這可能是一個不錯的選擇。