2017-04-05 32 views
0

我有一些數據是從PostgresSQL數據庫(據說使用pg_dump)轉儲的,需要導入到SQL Server中。
雖然數據類型沒問題,但我遇到了一個問題,那裏似乎有NULL的佔位符。我在許多字段中看到一個反斜槓,後面跟着一個大寫的N。以下是從Excel中查看的數據片段。左列具有布爾數據類型,和右一個具有整數作爲數據類型將PostgresSQL轉儲到SQL Server - 數據類型錯誤

Snippet of the data, as viewed from within Excel. Left column has a Boolean data type, and the right one has an integer as the data type

有些應該是布爾數據類型的,並且具有兩個字符中存在肯定不是要飛。

這裏是我試過到目前爲止:

  1. 通過髒讀導入 - 保存任何數據類型SSIS決定每場了;無濟於事。所有布爾字段都有關於截斷的錯誤消息。
  2. 根據正確的數據類型爲數據創建一個表格,儘管這樣做更有趣......我需要做的和在髒讀中一樣,否則源代碼將無法正確加載。還需要將數據轉換爲正確的數據類型以便插入到目標數據源中;然而,我正在得到截斷問題,當它肯定不應該。
    下面是我的派生列轉換編輯器中的示例表達式:
    (DT_BOOL)REPLACE(observation,"\\N","")
    數據類型應該是布爾值。

任何建議將非常有幫助!

謝謝!

+1

爲什麼不直接用文本編輯器替換文件中的'\ N'? – cha

+0

@cha,如果這是一次性交易,我會馬上做一個查找/替換;但是,如果數據看起來不錯,這可能會變成一個長期的自動化過程,顯然,我不能按照您的建議做。我應該把這個問題提出來。 – Eli

回答

0

由於我無法繞過SSIS規則以便將數據無誤地存入我的表格,所以我採用了快速而又髒的方法。
爲我工作的解決方案是讓源數據讀取每列,就好像它是一個字符串,並且目標表中的所有字段都是數據類型VARCHAR。這個目的地表格將用作臨時表格,一旦在SS中,我可以根據需要進行操作。

謝謝@cha您的意見。

相關問題