这是我想要做的:
我从数据库中选择SQL脚本并将这些脚本分配给每个循环中的变量(假设所有脚本都有不同的列)。之后,我试图在数据流任务ODBC源中执行SQL脚本。我正在使用数据流任务属性中的SQL_COMMAND @variable。此选项不起作用。我想这不是理解动态列。 SSIS给出了验证错误。
另外,我尝试从变量执行SQL任务中执行这些脚本。我的源代码是ODBC。我在“执行SQL任务”中将完整结果集分配给了一个对象变量,但它给了我一个错误。据我所知,有一个关于ODBC的问题。因此,我无法将完整的结果集分配给ODBC中的对象变量。
你们有什么想法吗?如何在SSIS中执行这些脚本并获得结果?我需要获取结果并将其插入目标表。
P.S:由于服务器问题,我无法使用OLE DB连接。所有脚本都需要在相同的环境中执行。
答案 0 :(得分:0)
SSIS要求所有源,转换和目标之间的列元数据都是静态且正确的。您不能简单地遍历脚本列表并通过相同的数据流运行不同的结果。
实现这一目标的唯一方法是使用类似Biml之类的东西,以编程方式从源脚本中为您构建软件包。开发Biml有几种免费且付费的方式,例如免费的BIDSHelper和BimlExpress(由Biml:Varigence的创建者制作)为Visual Studio或付费的BimlStudio添加内容(也来自Varigence)。