2016-08-23 8 views
0

내가 실행 다음과 같은 오류를 제공 SSIS 패키지를 보내고 있습니다 :SSIS SQL 실행 작업 오류

오류 : 0xC002F210에서 SQL 작업 1, SQL 실행 태스크 실행 : 쿼리를 실행 "대 Varchar로 @POID 선언 (50) Set @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)** 
,451,515,

IsQueryStorePro : 거짓 BypassPrepare : 거짓

매개 변수 매핑 속성

없음

의 ResultSet

ResultName 변수 이름

0 사용자 : PONUMBER

1 사용자 : StoreName이

2 사용자 : StoreEmail

3 사용자 : 공급

4 사용자 : DeliveryDate

누군가가 나를 도울 수 있다면 감사하겠습니다

문제가있는 곳을 suggeting하여이 문제를 해결하십시오.

위의 쿼리를 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에서 결과 집합을 반환합니까? 얼마나 많은 행이 반환됩니까? 또한 오직 2008 년과 2012 년 모두 사용하지 않는 ssis 버전의 태그 만 사용하십시오. – Matt

+0

안녕 Matt, SSMS에 대해 확신하지 못합니다. 반환되는 행은 기본적으로 0입니다. SSIS 2008을 사용하고 있습니다. – Shivang

+0

반환 된 레코드가 없으면이 작업을 어떻게 수행해야합니까?2 개의 레코드가 반환되면 어떻게됩니까? 예를 들어 미리 SQL 작업을 사용하여 레코드를 계산할 수 있으며 개수에 따라 몇 가지 다른 워크 플로를 수행 할 수 있습니다. –

답변

0

쿼리에서 0 레코드가 반환되고 결과 집합을 채우려는 경우 오류가 발생합니다. 항상 단일 결과를 리턴하도록 조회를 변경하면 오류가 사라집니다.

+0

이 문제를 해결할 수 없습니다! 당신이 나를 도울 수 ? 감사합니다 – Shivang

+1

귀하의 데이터베이스에 대한 액세스, 귀하의 비즈니스 로직에 대한 설명과 월급, 나는 모든 경우에 하나의 기록을 반환하는 쿼리를 다시 작성하는 방법을 말할 수 없습니다. Execute SQL Task의 ResultSet을 "Single Row"로 설정하고 쿼리가 0 개의 레코드를 반환하면 오류가 발생합니다. – btberry