Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 如何为数据流任务设置脚本任务中变量的值_Sql Server_Ssis_Business Intelligence - Fatal编程技术网

Sql server 如何为数据流任务设置脚本任务中变量的值

Sql server 如何为数据流任务设置脚本任务中变量的值,sql-server,ssis,business-intelligence,Sql Server,Ssis,Business Intelligence,我不熟悉SSIS,也不熟悉为多个表创建IDL(增量数据加载)包 我的软件包有执行SQL任务,当我从脚本任务设置变量值时,它正在工作,但当我尝试从脚本任务为数据流设置变量值时(oldedb源),它不工作,例如 我的SSIS包: 前循环容器 为任务编写脚本以循环表的架构,并设置SourceTable=TableName oledb源(使用SourceTable) 查找(查找不匹配输出) 旧的目的地 知道为什么吗 更新: 当SSIS无法从指定的源提取元数据信息(列名和数据类型)时,它会从数据源组

我不熟悉SSIS,也不熟悉为多个表创建IDL(增量数据加载)包

我的软件包有执行SQL任务,当我从脚本任务设置变量值时,它正在工作,但当我尝试从脚本任务为数据流设置变量值时(oldedb源),它不工作,例如

我的SSIS包:

  • 前循环容器

  • 为任务编写脚本以循环表的架构,并设置SourceTable=TableName

  • oledb源(使用SourceTable)
  • 查找(查找不匹配输出)
  • 旧的目的地
知道为什么吗

更新:

当SSIS无法从指定的源提取元数据信息(列名和数据类型)时,它会从数据源组件报告此类异常错误。以下是可能的案例和待办事项:

  • 在包运行之前验证数据源,此时SourceTable变量中不存在任何值。ToDo-为数据流任务指定DelayValidation=true,或为SourceTable变量设置一些有效的默认值(指向启动时存在的表)
  • SourceVariable在运行时包含无效的表名。如果您进行了上述更改,并且错误仍然存在,则会发生这种情况。使用调试器检查其值并分析案例

当SSIS无法从指定源提取元数据信息(列名和数据类型)时,它会从数据源组件报告此类异常错误。以下是可能的案例和待办事项:

  • 在包运行之前验证数据源,此时SourceTable变量中不存在任何值。ToDo-为数据流任务指定DelayValidation=true,或为SourceTable变量设置一些有效的默认值(指向启动时存在的表)
  • SourceVariable在运行时包含无效的表名。如果您进行了上述更改,并且错误仍然存在,则会发生这种情况。使用调试器检查其值并分析案例

是否已将变量指定为脚本任务的读/写?是的,我已将ReadWriteVariables中的User::SourceTable指定为脚本任务的读/写?是的,我已将ReadWriteVariables中的User::SourceTable指定为脚本任务的读/写?我已使用调试器检查脚本任务中的值,脚本任务正在将值传递给数据流任务,但我仍然无法写入数据流任务中的包变量,我还设置了DelayValidation=true。看,如果我使用脚本组件,我只能写入包变量值。现在我似乎明白了。您正在尝试写入脚本转换组件中的包变量,对吗?在这种情况下,你可能会发现这很有帮助——是的,你得到了。我正在使用脚本组件并在数据流任务中设置变量值,似乎我缺少了一些东西,因为我无法在oledb目标的数据访问模式中使用变量,例如检查我的更新。@shaadi,请参考提供的链接。标准MS方式限制您仅在执行后阶段修改读写变量。另一种方法-小心使用VariableDispenser-在执行前锁定变量,在行或执行后修改变量,在执行后解锁变量。请您逐步解释我如何在运行时在数据流任务中将值设置为变量。如果您能找到一种方法,这将是一个很大的帮助。我使用调试器检查脚本任务中的值,并且脚本任务正在将值传递给数据流任务,但是我仍然无法在数据流任务中写入包变量,并且我还设置了DelayValidation=true。看,如果我使用脚本组件,我只能写入包变量值。现在我似乎明白了。您正在尝试写入脚本转换组件中的包变量,对吗?在这种情况下,你可能会发现这很有帮助——是的,你得到了。我正在使用脚本组件并在数据流任务中设置变量值,似乎我缺少了一些东西,因为我无法在oledb目标的数据访问模式中使用变量,例如检查我的更新。@shaadi,请参考提供的链接。标准MS方式限制您仅在执行后阶段修改读写变量。另一种方法-小心使用VariableDispenser-在执行前锁定变量,在行或执行后修改变量,在执行后解锁变量。请您逐步解释我如何在运行时在数据流任务中将值设置为变量。如果你能找到一个方法,这将是一个很大的帮助。