3

SQL Server 2008 w/SP2を使用しています。

OLE DB変換を介してレコードセットの宛先変換に着信するdecimal(9,2)フィールドがあります。また、宛先のトランスフォーメーションの[入力と出力のプロパティ]タブをクリックすると、何らかの理由でこの特定のフィールドがタイプDT_NUMERICとして表示されていることがわかります。小数以外のものとして読んでいるようなものですか?わかりません。私はSSISの第一人者ではありません。

続けて...私が抱えている問題は、この10進数フィールドの変数に値を詰め込もうとしているところから始まります。foreachループには、この10進フィールドを表す変数があるので、それを操作できます。

私がよく知っていると思う最初の問題は、SSIS変数に10進型がないことです。そして、私自身のテストとそこで読んだことから、人々はSSISを10進値で「幸せ」にするために、変数の型オブジェクトを使用していますか?それは私の幸せになります。

しかし、foreachループには、forループがあります。その中で、私はE * xecuteSQLタスク変換*を使用しています。その中で、変数へのパラメーターマッピングを作成して、ここでのT-SQL呼び出しでその10進フィールドを操作できるようにする必要があります。これで、パラメーターの10進数型が表示され、それを使用して、変数を指すように設定しました。

SSISを実行し、それがSQL呼び出しにヒットすると、出力ウィンドウにこれが表示されます。

   The type is not supported.DBTYPE_DECIMAL 

だから私はここで壁にぶつかっています。私がやりたいのは小数で作業することだけです!!!

4

2 に答える 2

3

オブジェクトではなく、データフロータスクで値をdoubleまたはvarcharに変換してみます。transact sqlステートメントでタイプを10進数に戻すには、executesqlタスクでcastまたはconvertステートメントを使用する必要がある場合があることに注意してください。

于 2012-09-17T03:43:53.350 に答える
0

私は同様の問題に直面していました、そして私の解決策のために私は10進数からIntへのコンバーターを使用しました。

于 2016-09-01T01:15:54.527 に答える