通过具有多个值参数的OLEDB源在SSIS中调用存储过程

时间:2018-07-06 22:58:03

标签: visual-studio-2015 ssis sql-server-data-tools

我正在尝试调用具有3个输入参数的存储过程。存储的proc有多个联接,填充了多个临时表等。我需要从一个数据库调用此SP,然后在SQL Server中填充另一个数据库表。我正在尝试使用OLEDB源SQL命令

我还在SSIS包中创建了3个变量(相同的变量在存储的proc参数中)

     @date string
     @productType string
     @Flag int32

      Exec getDetails
       ?,?,?

also mapped parameters tab
Parameter-Date variables:user::Date
ProductType-variables:user::ProductType
Flag -variables:user::Flag

第一个参数是日期字段,获取特定的date数据 第二个参数产品类型具有20个不同的可能值(我们想将所有产品类型拉一日期) 第三-仅是1或0的值。  我还需要将SP的列映射到目标表。 sproc不需要一些列,应该进行映射。我收到错误,为

  

Exception-HRESULT:0Xc020204A OLEDB记录可用。e-Source   Microsoft SQL Sever本机客户端11.0 HResult-0 * 80004005

     

数据流任务错误(OLEDB源)-无法检索列   来自数据源的信息。确保您的目标表在   数据库可用。需要帮助将数据从此存储的过程加载到   目标表。

2 个答案:

答案 0 :(得分:0)

.LegendItem { min-height: $itemHeight; font-size: $fontSize; margin: 2px 0; display: flex; flex-flow: row nowrap; justify-content: flex-start; align-items: flex-start; // <-- Change this } .LegendItem_Eye { width: $slotWidth; display: flex; justify-content: center; align-items: center; background: #bbb; } .LegendItem_Eye::before { // <-- Add this content: "A"; width: 0px; visibility: hidden; } .LegendItem_Text { padding: 0 3px; flex: 1; background: #eaa; // <-- Remove align-self }

Declare @date string, @productType string, @Flag int32

set @date = ? set @productType = ? set @Flag = ?

请确保将变量映射为相同顺序

答案 1 :(得分:0)

感谢您的所有回复。 步骤1 我实际上使用了另一种方法来创建另一个存储的proc并称为另一个sp(不能修改sp)。创建了一个临时表,将名为sp的结果插入到临时表中,并将temp的结果集填充到目标表中。 -将可能的值传递给productType,将标志的值传递为1,并且将日期选择为最大值 第2步创建的SSIS包,用于执行sql任务来调用sproc

有效

相关问题