4

我有一个任务让我很困惑。希望你能帮助我。我正在使用一个数据流任务,它基本上是将一行插入到 sqlite 表中。我正在使用“SQL 任务”执行此操作,但不幸的是,将 guid 成功插入 sqlite 表的唯一方法是使用数据流任务将其转换为字节流。我不想使用源数据库,因为我的数据没有从一个表流向另一个表。我真的只想获取我填充的变量并将它们转换为字节流,然后我可以成功地将其插入到 sqlite 数据库中。问题是,我不能在没有源数据库的情况下使用数据流任务。

到目前为止,我的解决方法是声明一个源数据库/表和只有一列(但从不在数据流中使用它)。这工作正常,我无法使用我的预设变量将该行插入到 sqlite 中,但是每次我这样做时,我的输出日志中都会留下一条有点烦人的消息:

警告:0x80047076,SSIS.Pipeline:输出“OLE DB 源输出”(11) 和组件“OLE DB 源”(1) 上的输出列“”(117) 随后未在数据流任务中使用。删除这个未使用的输出列可以提高数据流任务的性能。

任何人都知道让这个警告不出现的好方法吗?

4

2 回答 2

9

在您的数据流中选择一个脚本组件。

当系统提示您选择 Source、Destination 或 Transformation 时,请选择 Source。

将预先填充的变量添加到脚本选项卡的 CustomProperties.ReadOnlyVariables 部分。

转到输入和输出部分。

在每个变量的默认输出中添加一列。

在您的脚本(如果使用 C#)中,在 CreateNewOutputRows() 部分中放置类似于以下内容的内容

    Output0Buffer.AddRow();
    Output0Buffer.ContainerName = Variables.ContainerName;
    Output0Buffer.TaskName = Variables.TaskName;
    Output0Buffer.TaskStartDate = Variables.ContainerStartTime;

保存您的脚本。

将您的脚本组件连接到您的目标对象。

于 2012-09-06T16:47:44.477 回答
-1

如果这导致您的包执行失败,您可以选择忽略这些警告/错误。

只需双击数据流中的源块并导航到左侧窗格中的最后一个选项卡(“错误输出”),您需要选择忽略错误的选项。(我不知道该选项中的哪个短语会做到这一点)

于 2012-09-04T07:32:53.853 回答