我正在创建一个SSIS包,并在提取数据时收到以下错误。
错误:分配给变量" User :: dunsId"的值的类型(DBNull);与当前变量类型(String)不同。变量在执行期间可能不会更改类型。变量类型是严格的,除了Object类型的变量。
dunsId是源表中的varchar(150),它是可空列并包含Null值。 我在SSIS中创建的用于映射它的变量是string类型。我基本上试图提取所有他的记录并将其插入包含列dunsId是varchar(150)的目标表中
这是我的插入查询
INSERT INTO Parties (companyId, dunsId, companyName, companyTypeId,companyTypeName,companyStatusTypeId,companyStatusTypeName,simpleIndustryId,simpleIndustryDescription)
values (companyId, dunsId, companyName, companyTypeId, companyTypeName,companyStatusTypeId,companyStatusTypeName,simpleIndustryId,simpleIndustryDescription)
变量
设计
答案 0 :(得分:3)
解决问题的方法很少:
string
更改为object
Execute SQL task
开始,在问题列中放置ISNULL
,这将确保输出为string
Source
中的Destination
加载到DataFlow task
或Execute SQL task
使用INSERT INTO target_table SELECT...FROM Source_table
语句<强>更新强>
正如您所提到的,您使用stored procedure
输出列,然后您可以使用语句INSERT INTO target_table EXEC your_usp
代替上面的方法3
答案 1 :(得分:0)
dunsId
变量的变量类型为STRING,并且您尝试在运行时为此变量NULL
分配一个值,即查询返回列NULL
的{{1}}变量类型String不支持,请将其声明为dunsId
类型。