2016-08-23 231 views
0

我有一个SSIS包赋予执行时如下错误:SSIS执行SQL任务错误

错误:0xC002F210在执行SQL任务1,执行SQL任务:执行查询“声明@POID为VARCHAR (50) Set @POID = 636268 ...“failed with following error:”无法为单行结果类型填充结果列,查询返回空结果集。“可能的失败原因:查询问题,“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:假

参数映射属性

的ResultSet

ResultName变量名称

0用户:采购单号码

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 

在此先感谢。

+0

并且该查询返回ssms中的结果集?返回多少行?也只标记你使用的ssis版本不是2008&2012. – Matt

+0

嗨马特,我不确定SSMS。基本上返回的行是0。我正在使用SSIS 2008. – Shivang

+0

如果没有记录返回,该任务应执行什么操作?如果返回2条记录怎么办?例如,您可以事先使用SQL任务来计数记录,并根据计数做一些不同的工作流程。 –

回答

0

如果从您的查询中返回0条记录,并且您试图填充结果集,那就是您将得到的错误。更改您的查询,以便始终返回单个结果,并且错误将消失。

+0

我无法解决这个问题!你可以帮帮我吗 ?谢谢 – Shivang

+1

无法访问您的数据库,您的业务逻辑和薪水的解释,我无法告诉您如何重新编写您的查询以在所有情况下返回单个记录。如果将执行SQL任务的ResultSet设置为“单行”,并且查询返回0条记录,则会出现错误。 – btberry