我必须通过在where子句中传递值来使用sql查询提取数据。 要传递的值驻留在excel中。我不想在查询中对这些值进行硬编码。
任何人都可以指导我如何传递这些价值观。
例如:从XYZ中选择名称,年龄,地址,其中ID在()中 现在我必须通过我在excel表中的ID。
答案 0 :(得分:0)
假设excel文件位于一个已知的位置,您可以使用Excel数据源获取信息。看看:
http://msdn.microsoft.com/en-us/library/ms141683.aspx
它支持SQL语法,但如果工作表有两行 - 列标题和数据行,它会更容易。您将命名参数从数据行中拉出来。
另外,我的回忆是你需要在执行SSIS作业的机器上安装Microsoft Office,所以在部署时请记住这一点。
获得Excel数据源中的值后,将它们存储在变量中,您可以将它们作为值参数传递给SQL查询。参见:
答案 1 :(得分:0)
使用脚本任务访问Excel工作表并填充SSIS变量(类型为object)。然后,通过遍历所有值在FOR EACH LOOP CONTAINER中构建SQL查询。将SQL存储在另一个变量(字符串)中,最后使用EXECUTE SQL TASK执行它。
答案 2 :(得分:0)
您可以使用脚本任务迭代Excel工作表中的所有值,并在SSIS用户变量中追加值,每个值用逗号分隔。
然后,您可以使用Execute SQL Task使用在Script Task
中创建的参数来执行SQL