SQL ServerからPDA Serverにテーブルを転送しています。これは私のデータフローです。
ADO NETソース---> OLE DB Destination
ソーステーブルのすべての列はvarcharであるため、宛先テーブルを作成するときに、それらのデータ型が同じであることを確認しました。したがって、両方のテーブルには、すべての列にvarcharデータ型があります。
ただし、まだエラーが発生します。列「col1」は、Unicodeと非Unicodeの文字列データ型の間で変換できません。奇妙なことに、OLE DB DestinationをADO Net Destinationに置き換えると、正常に機能するように見えますが、OLE DBなので、バッチごとの行などを指定できます。
誰か助けてもらえますか?
ソースと宛先の間の線をダブルクリックし、[メタデータ]タブを選択します。これにより、SSISが推論したすべての列とデータ型が一覧表示されます。
私はそれをあなたのソースと比較し、100%それらが整合することを確認します。
起こり得ることは、データフローを初めて構築したときに、SSISがその時点でのタイプに基づいてメタデータを設定することです。 col1
はnvarcharとして解釈されるため、ある程度の長さのDT_WSTR
として設定されます。
時間が経過し、クエリを更新すると、ソースはvarcharになりますが、col1
と呼ばれます。 varcharは常にnvarcharに収まるため、その列の形状は「変更」されないため、SSISは内部をやり直す必要がありません。
SSISが古いメタデータにしがみついている場合、私のクリックパスは
SELECT 1 as TotallyNewAndUniqueColumn
に変更します