2017-04-05 5 views
0

SQL Serverにインポートする必要のあるPostgresSQLデータベース(通常、pg_dumpを使用)からダンプされたデータがあります。
データ型は問題ありませんが、NULLのプレースホルダがあるような問題が発生しています。私は多くの分野で大文字のNが続くバックスラッシュを見る。以下はExcelの中から見たデータのスニペットです。左の列は、Booleanデータ型を持ち、そして右はこれらのいくつかは、ブールデータ型のことになっている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

データ型として整数を持ち、2つの文字を持つことは最も確かに存在しないで飛ぶ。ここで

は、私がこれまで試したものです:ダーティリードを経由して

  1. インポート - SSISは、各フィールドが持っていたことを決めたデータ型何でも保ちます。無駄に。すべてのブール値フィールドの切り捨てに関するエラーメッセージがありました。
  2. 正しいデータ型に基づいてデータ用のテーブルを作成すると面白かったのですが...ソースが正しく読み込まれないため、ダーティな読み込みと同じようにする必要がありました。また、宛先データソースに挿入するためにデータを正しいデータ型に変換する必要がありました。しかし、私は切り捨ての問題を抱えています。
    派生列変換エディタのサンプル式は次のとおりです。
    (DT_BOOL)REPLACE(observation,"\\N","")
    データ型はブール値でなければなりません。

どのような提案が本当に役立つでしょう!

ありがとうございます!

+1

あなたが選んだテキストエディタを使ってファイル内の '\ N'を直接置き換えないのはなぜですか? – cha

+0

@chaこれは1回限りの取引だった場合は、すぐに検索/交換を行ったでしょう。しかし、データがうまく見える場合、これは私が明らかにあなたが提案したことをすることができない長期的な自動プロセスに変わるかもしれません。私はこの点を疑問に置くべきだった。 – Eli

答えて

0

エラーなしでデータをテーブルに取得するためにSSISルールを迂回することができなかったので、私は迅速で汚いアプローチを採用しました。
私のために働いた解決策は、ソースデータが各列をあたかも文字列であるかのように読み込み、宛先テーブルがすべてのフィールドがVARCHARデータ型であるようにすることでした。この宛先テーブルはステージングテーブルとして使用され、SSで一度必要に応じて操作できます。

ありがとうございました。

関連する問題