SSIS执行SQL任务错误

时间:2016-08-23 23:46:45

标签: ssis ssis-2008

我有一个SSIS包,执行时会出现以下错误:

错误:0xC002F210在执行SQL任务1,执行SQL任务:执行查询"将@POID声明为Varchar(50) 设置@POID = 636268 ..."失败并出现以下错误:"无法为单行结果类型填充结果列。查询返回一个空结果集。"。可能的失败原因:查询问题," ResultSet"属性设置不正确,参数设置不正确或连接未正确建立。 任务失败:执行SQL任务1

该软件包具有单个执行SQL任务,其属性如下所示:

常规属性 结果集:单行

ConnectionType:OLEDB  连接:已连接到服务器  SQLSourceType:直接输入  SQL语句:

Declare @POID as Varchar(50)
Set @POID = 0
SELECT DISTINCT BizTalk_POA_HEADER.PONUMBER, FAN_Suppliers.SupplierName, FAN_Company_Details.CompanyName, FAN_Company_Details.[PrimaryEmail], BizTalk_POA_HEADER.[DeliveryDate]
FROM  BizTalk_POA_HEADER 
INNER JOIN FAN_PO_Details ON BizTalk_POA_HEADER.PONUMBER = FAN_PO_Details.PoNumber                                                                                                                                                                                                                                                                                                       
INNER JOIN FAN_PO ON FAN_PO_Details.PurchaseOrderID = FAN_PO.PurchaseOrderID     
INNER JOIN FAN_SupplierDetails ON FAN_PO.SupplierDetailsID =     FAN_SupplierDetails.SuppliersDetailsID 
INNER JOIN FAN_Suppliers ON FAN_SupplierDetails.SupplierID = FAN_Suppliers.SupplierID 
INNER JOIN FAN_Company_Details ON FAN_PO.CompanyID = FAN_Company_Details.CompanyDetailsID

WHERE    (BizTalk_POA_HEADER.PONUMBER = @POID)**

IsQueryStorePro:错误  BypassPrepare:False

参数映射属性

结果集

ResultName变量名称

0用户:PONUMBER

1位用户:StoreName

2用户:StoreEmail

3用户:供应商

4用户:DeliveryDate

如果有人可以通过建议解决问题的方法来帮助我解决这个问题,我将不胜感激。

然后我将查询更改为以下内容,因为上面显示了SSMS中的转换错误,当我尝试在执行SQL任务中包含以下内容时,查询是否已保存,无论如何?

SELECT    DISTINCT  BizTalk_POA_HEADER.PONUMBER,FAN_Suppliers.SupplierName,  FAN_Company_Details.CompanyName, 
FAN_Company_Details.[PrimaryEmail], BizTalk_POA_HEADER.[DeliveryDate]
FROM         BizTalk_POA_HEADER INNER JOIN
                  FAN_PO_Details ON CAST(BizTalk_POA_HEADER.PONUMBER AS VARCHAR(128))  = CAST(FAN_PO_Details.PoNumber AS VARCHAR(128)) INNER JOIN
                  FAN_PO ON FAN_PO_Details.PurchaseOrderID = FAN_PO.PurchaseOrderID INNER JOIN
                  FAN_SupplierDetails ON FAN_PO.SupplierDetailsID = FAN_SupplierDetails.SuppliersDetailsID INNER JOIN
                  FAN_Suppliers ON FAN_SupplierDetails.SupplierID = FAN_Suppliers.SupplierID INNER JOIN
                  FAN_Company_Details ON FAN_PO.CompanyID = FAN_Company_Details.CompanyDetailsID

先谢谢。

1 个答案:

答案 0 :(得分:1)

如果从查询中返回0条记录并且您正在尝试填充结果集,那么您将获得该错误。更改您的查询,以便它始终返回单个结果,错误将消失。