web-dev-qa-db-ja.com

SSIS-データが失われる可能性があるため、値を変換できません

私はSSISが比較的新しいです。 Microsoft OLEDB for Oracleを使用してOracleデータベースから情報を抽出しようとしていますが、次のクエリを使用しています。

SELECT ID FROM Test

次のエラーメッセージが表示されます:the value cannot be converted because of a potential loss of data。クエリを次のように変更すると、動作します:

SELECT '1' FROM Test

IDが整数ではないため、失敗していると思います。ただし、フラットファイル接続マネージャーは、OutputColumnWidthが50であることを示しています。何が間違っていますか?

更新16:30 GMT
これについてもう少し調べましたが、問題の原因となっているのは、「頻度」または「なし」のヒストグラムを持つ列のようです。 「高さのバランス」のヒストグラムがあるものは問題ないようです。

22
w0051977

これはよくあることです。列のメタデータを決定できない別のタイプのシステムからsisへのインポートの多くの場合のデフォルトは、デフォルトでstr(50)になっています。これを1文字の列にプッシュしようとしているため、データが失われる可能性があると想定しています。右クリックして「高度なエディタを表示...」を選択することにより、ソースコンポーネントに移動します。

次に、最後のタブ(入力および出力プロパティ)に移動します

OLE DB Source Outputの横にある+をクリックします

[出力列]の横の[+]をクリックします

ID列を強調表示します

ダイアログボックスの右側にあるLength Data Typeプロパティまでスクロールし、50から1に変更します。

40
William Salzman