我真的希望我能在这方面得到一些意见。我试图在WHERE子句中使用带有" in“的SQL语句创建一个SSIS包(ex: SELECT * FROM Oracle.Table1 WHERE Col1 IN (?) )。基本上,一个带有Server表值的Oracle SQL语句。我搜索过什么也找不到。如有任何建议,将不胜感激:
我试过以下几种方法:
FYI:我只读取Oracle DB的权限:(
发布于 2020-09-15 14:39:28
最重要问题
你试过的问题
string.Join(",", Dts.Variables["User::Obj_values"].Value.ToArray());一样琐碎,但可能不取决于您如何填充对象数组的底层伏都教。其他方法
根据数量以及Server中的键在Oracle中是否匹配(0到1)或(0对多),您可以将数据流写成
在这种方法中,从筛选的值列表开始,然后将其与Oracle中的引用表进行比较。如果引用表是“纽约证券交易所自成立以来的所有交易”,那是行不通的,但如果它是“所有我的客户”,那么您可能可以将这些数据带到查找组件中。
您可以尝试在部分缓存模式下使用查找来分割差异。在这种方法中,它不是将整个目标表拖到内存中,而是为每个元素触发一个查询,除非它已经看到了键,在这种情况下,它会重新使用本地缓存的值。在这种方法和foreach枚举器方法之间,我倾向于通过查找组件触发查询,因为您不必为数据流任务的每次启动支付验证开销。考虑到这是Oracle,这假定您有一个OLE DB连接管理器可用。否则,您必须使用Cache连接管理器,顾名思义,它只能缓存预定义的数据。
https://stackoverflow.com/questions/63894458
复制相似问题