Sql server SSIS-使用ODBC SQL执行任务,将参数导入要导入的结果集
第一件事。我对SSIS完全是新手,试图在ETL方面挖掘它的潜力,并最终进入SSAS。我有以下情况:Sql server SSIS-使用ODBC SQL执行任务,将参数导入要导入的结果集,sql-server,ssis,etl,intersystems,Sql Server,Ssis,Etl,Intersystems,第一件事。我对SSIS完全是新手,试图在ETL方面挖掘它的潜力,并最终进入SSAS。我有以下情况: 我有一个系统间数据库,可以通过ADO.NET 我想从这个数据库中获取数据,并通过增量加载将其插入MS SQL 我建议的解决方案/目标是: 在MS SQL中具有存储上次指针读取或日期/时间快照的表。(在现阶段没有)。让我们保持简单,假设我们将使用Intersystems数据库中存在的记录ID 从该表中获取指针,并通过ODBC将其用作参数来读取源数据库,然后将其插入到目标MS SQL db中 用上次读
.NET
[Execute SQL task]
使用参数从Intersystems Db读取数据,并使用FullResultSet将其放入变量中
[ForEach循环容器]
使用[ForEach ADO枚举器]
来遍历每个记录和每个字段(Yeeey!)[Script task]
,它使用VB.NET
代码(理论上)插入MS SQL数据库,然后用从源数据库读取的最后一条记录更新计数器。我花了无数时间寻找使用ODBC参数的解决方案,以上是我能看到的唯一可行的方法
我的问题是:
这是唯一的方法和最佳实践吗?是否有一些简单的方法可以将这个结果集插入到一些数据流组件中,这些组件可以为我插入和更新记录指针???
请假设我没有写入Intersystems Db的权限,因此我无法对表结构进行任何更改。但我只能读取数据,以便将其放入MS SQL中
我建议你们使用数据流来提高设计的效率(批量加载与脚本中的逐行加载相比)和易用性(无需脚本编写)
您应该使用数据流,而不是将sql执行到变量中,并在foreach中逐行处理。我将在下面的回答中展开您正在寻找的KeithL—“我建议使用数据流来改进您的设计”。这是我第一次尝试。但我发现数据流中的ODBC数据源不支持参数。没有选项,如果您输入?则在“解析”sql查询时会出现错误。这就是我选择“执行sql任务”获取数据的原因,因为它是唯一支持参数的选项。