【发布时间】:2019-05-07 19:02:49
【问题描述】:
SSIS 中的执行 SQL 任务有一个 sql SELECT 查询,它返回一个 Varchar(MAX) 值,我将它分配给一个 SSIS 字符串变量,resultset as single row 引发了关于 Casting 的错误。
所以我将 SSIS 变量类型更改为对象。
现在的问题是我有另一个执行 SQL 任务,它使用这个 SSIS 变量作为存储过程的参数,但它的类型是 VARCHAR(MAX)。我怎样才能实现它?
基本上,我试图将 SSIS 对象变量传递给 Varchar(MAX) 或字符串变量,以将其传递给另一个存储过程。
【问题讨论】:
-
漏洞太多。你确定你想要一个
object变量而不是string吗?如果是这样,你为什么不使用full result set?您的SELECT查询到底返回了什么?是 1 行还是多行? -
select和SP是否在同一个数据库中?只需编写一段 T-SQL 即可完成所有操作 -
我很确定单行可以将每一列分配给一个变量
-
您需要修复尝试将结果存储在字符串变量中时遇到的错误。很遗憾,您没有告诉我们错误是什么,因此在您提供更多信息之前,我们无法为您提供进一步的帮助。
-
我得到一个超过 8000 个字符的单行,我不希望 SQL 中的数据被截断。所以我在 SSIS 中使用了对象变量(如果我在 SSIS 中使用字符串变量并将 SQL 查询用作 VARCHAR(8000),但数据被截断,则工作得很好)。 SQL 和最终的存储过程在不同的数据库中。我试图从对象中读取值,并使用脚本任务将其分配给字符串变量,但我只能看到“System._COMObject”作为值。