1. ホーム
  2. sql-server

[解決済み] SSIS - データ損失の可能性があるため、値を変換することはできません。

2022-02-11 08:53:24

質問事項

私は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分更新
もう少し調べてみたところ、問題を起こしているのはヒストグラムが「頻度」または「なし」になっている列のようです。 ヒストグラムが「Height Balanced」であるものは問題ないようです。

解決方法は?

これはよくあることです。 カラムのメタデータが決定できない別のタイプのシステムから ssis にインポートする場合、多くの場合、デフォルトは str(50) になります。 それを1文字のカラムに押し込もうとしているわけですから、データが失われる可能性があると想定されます。 右クリックでソースコンポーネントに入り、"Show Advanced editor..."を選択するだけです。

そして、最後のタブ(入出力のプロパティ)に移動します。

OLE DBソース出力]の横にある[+]をクリックします。

出力カラムの横の+をクリックします

ID列をハイライト表示します。

ダイアログボックスの右側にある「長さデータ型プロパティ」までスクロールし、50から1に変更します。