我正在尝试使用SSIS执行以下操作。我使用的是SDT的最新版本,正在查询SQL Server2008 R2。
如果我做错了,有没有更好的方法,有人能建议我吗?
我基本上需要从源执行一个存储过程,并将结果存储在目标中。大约有20个存储过程。
每个存储过程都接受XML作为输入。我已经在数据流任务中创建了一个控制任务.在数据流中,我创建了oledb源。
我已经选择了数据访问模式作为SQL命令。我在下面创建了我的查询,但是当我预览时,我收到错误消息,说declare语句不受支持
DECLARE @xmldata XML
SET @xmldata = (SELECT DISTINCT TOP 1000 (mc.companyId) AS id
FROM ciqMarketCap mc
JOIN ciqCompany c ON c.companyid = mc.companyid
WHERE c.companyStatusTypeId NOT IN (5, 6)
AND c.companyTypeId IN (1, 4)
FOR XML PATH(''), TYPE, ROOT('partyIds'))
EXEC getPartiesMarketData @xmldata
如何执行其余的存储过程?我需要创建几个oledb源吗?
发布于 2017-07-12 01:05:41
我建议按步骤来做:
在SSIS中创建变量:
xmldata字符串集= "“
xmldata字符串“SQLquery getPartiesMarketData”+ @xmldata的设置公式
在执行sql任务中,将sql语句输入到直接输入中:
SELECT DISTINCT top 1000 ( mc.companyid ) as id FROM ciqMarketCap mc JOIN ciqCompany c ON c.companyid =mc.companyid WHERE c.companyStatusTypeId NOT IN (5,6),c.companyTypeId IN (1,4) for xml path(''),type,root('partyIds')
将结果集更改为XML
映射结果xmldata
然后在连接的另一个execute sql中执行真正的查询:
SQL源类型:变量
源变量: SQLquery
我还没有测试过,但我很确定它会工作。
https://stackoverflow.com/questions/45040090
复制相似问题