SSIS sql命令没有返回列信息

BA8*_*283 3 ssis oledbconnection visual-studio-2008

    \n
  1. 我在 中运行我的存储过程BI_Test_Server

  2. \n
  3. 然后我使用执行它exec [dbo].[bi_resource_dimension_sp] 1,1

  4. \n
  5. 我成功得到了结果SQL Server management Studio。所以我创建了一个Data Flow task,放置OLE DB源、数据连接和OLE DB目的地。我编辑了 OLE DB 源并创建了一个新连接。在 OLE DB 源 SQL 命令内部:SQL 命令文本我放置了步骤 4。

  6. \n
  7. 在 OLE DB 源 \xe2\x80\x93 SQL 命令文本中,我放置了exec [dbo].[bi_resource_dimension_sp] 1,1从 OLE DB 源中选择所有数据的命令,然后将其连接到数据连接并将数据转储到 OLE DB 目标中。

  8. \n
  9. 但是,当我尝试预览结果时,出现SQL 命令未返回任何列信息的错误。

  10. \n
\n\n

理想情况下,我需要勾选所有复选框以确保在哪一列中获取和放置数据。这就是我在第四步之后正在尝试和要做的事情。

\n\n

错误提示您可以\xe2\x80\x9c如果要继续操作\xe2\x80\x9d,请选择“确定”。但是,如果我这样做,当我进入列部分(位于连接管理器和错误输出之间的左上部分)时。它\xe2\x80\x99将显示空白列。

\n\n

请帮忙。

\n

zhr*_*ist 5

您可以尝试在数据流中使用“OLE DB 命令”。这对我来说很重要。我正在使用 VS 2013,并且对“OLE DB Destination”使用相同的过程不起作用,但对“OLE DB Command”使用则没问题。我还注意到“OLE DB Command”存在一些障碍,特别是存储过程不正确,但这对 SSIS 来说是一个优点。

数据流任务对于检索可以执行 SQL 的列/参数非常严格,特别是对于 OLE DB 目标(现在我注意到它也适用于源)。最常出现此错误。Microsoft 建议(OLE DB 目标建议)使用 OLE DB 命令而不是目标。我还建议尽可能使用阶段临时表。即使使用 OLE DB 命令,我也发现需要刷新几次,以便输入/目标列/过程参数可用于映射。

这是注释(不确定它是否适用于来源,但可能是):

笔记

OLE DB 目标不支持参数。如果需要执行参数化 INSERT 语句,请考虑 OLE DB 命令转换。有关详细信息,请参阅 OLE DB 命令转换。