首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >SSIS的SQL命令不支持Declare语句

SSIS的SQL命令不支持Declare语句
EN

Stack Overflow用户
提问于 2017-07-12 00:32:29
回答 1查看 627关注 0票数 0

我正在尝试使用SSIS执行以下操作。我使用的是SDT的最新版本,正在查询SQL Server2008 R2。

如果我做错了,有没有更好的方法,有人能建议我吗?

我基本上需要从源执行一个存储过程,并将结果存储在目标中。大约有20个存储过程。

每个存储过程都接受XML作为输入。我已经在数据流任务中创建了一个控制任务.在数据流中,我创建了oledb源。

我已经选择了数据访问模式作为SQL命令。我在下面创建了我的查询,但是当我预览时,我收到错误消息,说declare语句不受支持

代码语言:javascript
复制
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源吗?

EN

回答 1

Stack Overflow用户

发布于 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

我还没有测试过,但我很确定它会工作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45040090

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档