2017-08-04 5 views
0

F- SQL ci-dessous a travaillé pendant des années dans un package SSIS 2008:XML Path SQL ne fonctionne pas dans SSIS 2012

SELECT 
BofAAcctNumber AS 'td' 
,'' 
,ReferenceNumber AS 'td' 
,'' 
,CheckNumber AS 'td' 
,'' 
,CheckAmount AS 'td' 
FROM dbo.bai2_CheckStatementError 
    WHERE BenefitID IS NULL 
FOR XML PATH('tr') 

Dans SSMS, il renvoie les résultats attendus comme ci-dessous

<tr><td>999999999</td><td>88888888888</td><td>123456</td><td>999.00</td></tr>

L'utilisation d'une tâche SQL (Single Row dans une variable de chaîne) dans SSIS 2012 déclenche une erreur DBNull: Le type de la valeur (DBNull) étant affecté à variabl e "User :: strHTMLTable" diffère du type de variable en cours (String)

Toute critique ou commentaire est le bienvenu, merci.

+0

Est-ce dans une exécution Tâche SQL? Comment attribuez-vous la valeur à la variable? –

+0

Oui. Exécuter une tâche SQL définie sur une seule ligne dans une variable de chaîne, merci – BigV

+0

Dans la section "Ensemble de résultats", que trouve-t-on dans le champ "Nom du résultat"? –

Répondre

0

Spécifiez « Résultat » dans le « Résultat Nom » champ dans le « jeu de résultats » section et de l'utilisation: (. Vous pouvez également utiliser varchar le cas échéant)

SELECT 
    CAST 
     (
      (
       SELECT 
        BofAAcctNumber AS 'td' 
        ,'' 
        ,ReferenceNumber AS 'td' 
        ,'' 
        ,CheckNumber AS 'td' 
        ,'' 
        ,CheckAmount AS 'td' 
       FROM dbo.bai2_CheckStatementError 
       WHERE BenefitID IS NULL 
       FOR XML PATH('tr') 
      ) 
     AS nvarchar) Result 

+0

Merci, Chris. Ça a marché. J'apprécie vraiment votre aide. – BigV

+0

Pas de problème - veuillez marquer la réponse comme correcte si elle fonctionne. Merci. –