SSISパッケージを作成していますが、データの抽出中に次のエラーが発生します。
エラー:変数 "User :: dunsId"に割り当てられている値のタイプ(DBNull)が現在の変数のタイプ(String)と異なります。変数は実行中にタイプを変更することはできません。変数型は、Object型の変数を除き、厳密です。
dunsIdはソーステーブルのvarchar(150)であり、null可能列であり、null値が含まれています。マッピングするためにSSISで作成した変数は文字列型です。私は基本的に彼のすべてのレコードを抽出し、それを列dunsId is varchar(150)を含む宛先テーブルに挿入しようとしています
これが私の挿入クエリです
INSERT INTO Parties (companyId, dunsId, companyName, companyTypeId,companyTypeName,companyStatusTypeId,companyStatusTypeName,simpleIndustryId,simpleIndustryDescription)
values (companyId, dunsId, companyName, companyTypeId, companyTypeName,companyStatusTypeId,companyStatusTypeName,simpleIndustryId,simpleIndustryDescription)
変数
設計
あなたの問題を解決するいくつかの方法:
string
からobject
に変更することですExecute SQL task
から、ISNULL
を課題列の周りに置きます。これにより、出力がstring
になります。DataFlow task
のSource
からDestination
へのロードなどの代替方法を使用するか、Execute SQL task
ステートメントでINSERT INTO target_table SELECT...FROM Source_table
を1つ使用します[〜#〜]更新[〜#〜]
あなたが言及したように、あなたはstored procedure
を使用して列を出力しているので、上のメソッドINSERT INTO target_table EXEC your_usp
の代わりにステートメント3
を利用することができます
dunsId
変数の変数タイプはSTRINGで、実行時にこの変数NULL
に値を割り当てようとしています。つまり、クエリは列NULL
に対してdunsId
を返します変数タイプの文字列はサポートされていません。タイプObject
として宣言してください。