2017-02-08 3 views
0

私は3番目のパッケージでssisを使用しています。 OracleからSql Serverにデータを取り込んでいます。私のOracleテーブルでは、一意のキーはrecnumと呼ばれ、数値(12,0)です。この特定のパッケージでは、oracleからレコードを取得しようとしていますが、SQL Serverのテーブルを参照してその一意のキーが見つかったかどうかを確認し、SQL Serverテーブルにレコードを追加しないようにします。私の問題は、マッチを見つけることができないということです。多くのテストの後、私は次の方法で動作しました。しかし、なぜ私はこれをしなければならないのか分かりません。数値のSSIS検索が機能しない

私は現在どのように働いていますか: 私はOracleからデータを取得します。次のステップでは、oracle列を使用する派生列を追加しました。 (式はそのフィールドだけで、他の書式はありません)。次に、ルックアップではOracleの列の代わりに派生列を使用します。

ユニークキーが数値(8,0)だった別のテーブルで既にこれを行っており、派生カラムを必要とせずに正常に機能しました。

+0

SQL Serverテーブルのデータ列のデータ型は何ですか? – Serge

+0

私はそれを数値にしました(12,0)私はもともとそれを大きくしすぎて、それが問題かもしれないと考えました。だから私はそれを修正した。しかし、まだ同じ問題 – Amanda

+0

奇妙な音。 SSMSの値を比較してみてください。リンクされたサーバーオブジェクトをOracleボックスに作成し、SQL ServerテーブルをSELECT * FROM OPENQUERY(Oracle_Linked_Server_Name、 'SELECT * FROM source_table')に 'INNER JOIN'します。 – Serge

答えて

0

SSISはデータ型について非常に難解ですが、ルックアップはデータ型が一致する場合にのみうまく動作します。

データフローオブジェクト間のデータパス行をダブルクリックして、データ型を確認します。ルックアップを使用すると、データ変換タスクまたはCAST文を使用して一致するデータ型を強制的に使用します。

これが役に立ちます。

関連する問題