我的ssis包中有一个查询,它使用xml路径在execute sql任务中返回单行半冒号分隔值。我有一个名为email_list的用户var,然后将其设置为ResultSet作为单行。但是当我运行它时,我收到一个错误:
值类型(___ComObject)只能转换为object
类型的变量
我意识到变量email_list必须设置为Object类型,但如果我这样做,然后尝试在电子邮件任务的表达式构建器的ToLine字段中使用它,则表达式不会计算并抛出错误。
我在这里看过一些文章,它们提供了一个脚本任务解决方案,但我不想要任何脚本 - 如何通过将对象转换/转换为字符串来在表达式构建器本身中完成?
如果在表达式构建器中无法完成,那么解决方法是什么?
我在execute sql任务中的查询是:
SELECT STUFF((SELECT ';' + email
FROM booklist..books
FOR XML PATH('')) ,1,1,'') AS email_address
答案 0 :(得分:1)
表达式语言不支持对象类型。在您的情况下,您应该能够将结果转换为字符串数据类型
SELECT CAST(STUFF((SELECT ';' + email
FROM booklist..books
FOR XML PATH('')) ,1,1,'') AS varchar(8000)) AS email_address
答案 1 :(得分:0)
如果要从SQL查询中获取输入,则可以使用强制转换功能..
From Proc output ::
Select @output
we can take it this way,
Select cast(@output as varchar)