首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SSIS使用带有变量的DataFlow任务,而不是源数据库

SSIS使用带有变量的DataFlow任务,而不是源数据库
EN

Stack Overflow用户
提问于 2012-09-04 01:17:45
回答 2查看 11.7K关注 0票数 4

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

到目前为止,我的变通方法是声明一个源数据库/表,并且只声明一列(但从不在数据流中使用它)。这可以很好地工作,并且我无法使用我的预设变量将行插入到sqlite中,但每次执行此操作时,我的输出日志中都会出现一条令人生厌的消息:

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

有没有人知道一个好方法来提醒你不要出现?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-09-07 00:47:44

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

当系统提示选择源、目标或转换时,请选择源。

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

转到输入和输出部分。

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

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

代码语言:javascript
复制
    Output0Buffer.AddRow();
    Output0Buffer.ContainerName = Variables.ContainerName;
    Output0Buffer.TaskName = Variables.TaskName;
    Output0Buffer.TaskStartDate = Variables.ContainerStartTime;

保存您的脚本。

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

票数 9
EN

Stack Overflow用户

发布于 2012-09-04 15:32:54

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

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

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

https://stackoverflow.com/questions/12251885

复制
相关文章

相似问题

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