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