2017-06-30 34 views
0

Bigintでは1桁の数字が大きいETL SSISプロジェクトがあります。私はこのようなためにdtxパッケージを実行しているこのオーバーフローの問題を受け取り、データは転送できません。BigIntを使用したSSIS ETLオーバーフロー、データが1桁が大きすぎます

データはフラットファイルからBigIntとしてデータウェアハウスに流れています。

私の質問は、これを処理する最善の方法は何ですか?

1桁を減らすと、パッケージは正常に動作します。 1桁の数字を保存してデータベースに追加する方法や、何が最善の取り組みであるのか疑問に思っていましたか?

ご協力いただければ幸いです!

私が読んだものから:

A BIGINT is always 8 bytes and can store -9223372036854775808 to 
9223372036854775807 (signed) or 0 to 18446744073709551615 (unsigned). 

あなたはそれ以上の数字を持っている場合は、どのようにSSISパッケージでこれを扱うのですか?

私は思います:おそらく、その桁のデータベーステーブルに派生列を作成し、その桁を元のデータと区切ります。どうやってそのようにしますか?

答えて

1

Decimal(またはDouble)として保存できますか?

+0

開始日または終了日のデータ型を変更することはできません。なぜなら、会社はこれを許可しないからです。私は考えていた、私は別の派生列に最後の桁を拡張長さのために分けることができます。私が%10なら、それは私に最後の数字を与えます。次に、処理中にその列の最後の桁を抽出します。しかし、それについてどうやって行くのかわからない。 –

+0

私が意味することは、SSISで小数点として格納することができるということです。つまり、ステージングテーブルのように、反対側の同様の方法で処理することができますそれはまっすぐに行くだろう、私はそれをテストしていない)。 –

+0

データベース内のデータはBigIntデータ型です。それは多くの数字を取ることはありませんので、私は最良の方法は、行を保持しながらそれを自分の列に配置しながら最後の数字を削除することだと思う。 –

0

10進数またはvarcharのいずれかを使用します。

関連する問題