XML 路径 SQL 在 SSIS 2012 中不起作用

XML Path SQL not working in SSIS 2012

f下面的 SQL 多年来一直在 2008 SSIS 包中工作:

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')

在 SSMS 中,returns 预期结果如下

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

在 2012 SSIS 中使用执行 SQL 任务(将单行放入字符串变量)会引发 DBNull 错误:分配给变量 "User::strHTMLTable" 的值 (DBNull) 的类型不同于当前变量类型 (String)

欢迎批评指正,谢谢。

在 'Result Set' 部分的 'Result Name' 字段中指定 'Result' 并使用:

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 -- or nvarchar(x) - as Ann L. points out, nvarchar will truncate the string to 30 characters

(如果合适,您也可以使用 varchar。)