25

私は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
これをもう少し詳しく調べたところ、「頻度」または「なし」のヒストグラムを持つ列が問題を引き起こしているようです。「Height Balanced」のヒストグラムを持つものは問題ないようです。

4

1 に答える 1

46

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

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

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

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

ID 列を強調表示する

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

于 2012-07-31T19:23:07.807 に答える