问题标签 [dataflowtask]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
5934 浏览

sql-server - 如何以编程方式创建 SSIS 包?

我正在尝试以编程方式创建一个 SSIS 包,其中包含在同一数据库中从表 A 到表 B 的简单数据流。我正在使用此处给出的示例。该包被创建并保存到一个 dtsx 文件中,但是当我在 Visual Studio 中打开它时,我看到源表和目标表尚未被选择。

我还想在它到达目的地之前插入一个转换任务。


编辑

好吧,我已经设法选择了源表和目标表,并且任务甚至成功运行。原来我需要

(a) 对源和目标各使用一个 oleDB 连接[我不喜欢这种方式;我只想使用一个连接]

(b) 在目标SetComponentProperty("AccessMode", 3) 中将Accessmode 设置为 3,这相当于 Table 或 View - 快速加载。

某处是否有关于此的一些文档。我所能找到的只是SetComponentProperty的作用,而不是它可以采取的所有参数。例如。除了“AccessMode”,我还能放什么?第二个参数 3 或 2 或 1 代表什么?

仍在尝试映射绰号。STOCK:PipelineTask 表示 DataFlow 任务。说...复制列的绰号是什么?

0 投票
1 回答
2607 浏览

datetime - 为什么 > SSIS 包中的条件拆分返回 >= 结果?更新:(日期时间!= DT_DBTIMESTAMP?!)

我有一个 SSIS 数据流条件拆分转换,它在应该返回 > 结果时返回 >= 结果。

从一开始...我的 SSIS 包执行一个 SQL 任务,该任务将一个表中的 max(date) 存储在具有包范围的 DateTime 类型的变量 User::max_date 中。

然后我的包继续执行一个数据流任务,其中有一个条件拆分转换,它具有条件date > @[User::max_date]。结果集始终是单行,其 DateTime 值等于 User::max_date,也就是说,如果没有添加比 max(date) 更新的行,则返回包含 max(date) 的行。这是意想不到的行为。

此外,条件拆分的另一个输出是不正确的——它是所有行,date < @[User::max_date]而不是所有行,date <= @[User::max_date]正如人们所期望的那样。

为什么会这样?

更新:

我已经弄清楚这是怎么发生的,但不知道为什么。 User::max_date正在存储 DateTime ,date我的数据流任务中的值是DT_DBTIMESTAMP. 在将它们与 a 进行比较时,DATEDIFF(..)它们仅在几毫秒或更长时间内有所不同。

所以我可以解决这个问题,但我不知道为什么会这样实现。

评论?

0 投票
4 回答
15049 浏览

sql-server-2005 - 使用 SSIS 更新表

我正在尝试使用基于公共键的另一个表中的数据更新表中的字段。如果它是直接 SQL,它会是这样的:

但是,这两个表不在同一个数据库中,所以我尝试使用 SSIS 进行更新。哦,sitenum/site_code 一个是 varchar,另一个是 nvarchar,所以我必须进行数据转换,以便它们匹配。

我该怎么做?
我有一个数据流对象,源为 EHSIDMS,目标为 EHSIT。我有一个数据转换来将 unicode 转换为非 unicode。但是如何根据比赛进行更新?我已经尝试使用目标,使用 SQL 命令作为数据访问模式,但它似乎没有源表。如果我只是映射要更新的字段,它如何根据字段匹配来限制它?

我即将将我的源表导出到 Excel 或其他东西,然后尝试从那里输入,尽管似乎我能做的就是删除数据转换步骤。

不应该有更新数据任务之类的吗?它是那些数据流转换任务之一,我只是不知道它是什么?

0 投票
5 回答
7023 浏览

ssis - 测量 SSIS 数据流的进度

我正在运行一个 SSIS 包来从一个平面文件中加载一百万行,该文件使用一个脚本任务来进行复杂的转换和一个 SQL Server 表目标。我试图找出在数据流处理期间将行数(可能以 1000 的倍数更有效)写入不同表的最佳方法(嗯,现阶段的任何方法)。这样我就可以通过定期查询表来确定可能需要几分钟的任务的进度百分比。

我似乎无法将任何 SQL 任务添加到流程中,所以我猜测唯一的方法是连接到 .NET 脚本中的 SQL 数据库。这似乎很痛苦,我什至不确定这是否可能。还有其他更优雅的方式吗?我已经看到对“Rows Read”性能计数器的引用,但不确定我在 SSIS 中的何处访问它,并且仍然不确定如何在数据流处理期间将其写入 SQL 表。

任何建议表示赞赏。

格伦

0 投票
1 回答
2373 浏览

sql-server-2005 - 组件“x”的版本与此版本的 DataFlow 不兼容

尝试在 SS2K5 Enterprise Edition SP3 的 64 位安装上运行 SSIS 包时出现此错误。

使用 32 位 BIDS 开发包,并成功部署到 64 位 SS2K5 企业版 SP2 和 64 位 SS2K5 开发人员版 SP3。

已将客户端工具升级到 SP3,结果相同。

艾米的想法?

0 投票
6 回答
22089 浏览

ssis - 如何让 SSIS 数据流将“0.00”放入平面文件中?

我有一个带有数据流的 SSIS 包,它采用 ADO.NET 数据源(只是一个小表),执行一个 select * 查询,并将查询结果输出到一个平面文件(我也试过只拉整个表并且不使用 SQL 选择)。

问题是数据源提取了一个 Money 数据类型的列,如果值不为零,它会很好地进入文本平面文件(如 '123.45'),但是当值为零时,它会显示在目标平面文件中作为“.00”。我需要知道如何让前导零回到平面文件中。

我已经为输出尝试了各种数据类型(在平面文件连接管理器中),包括货币和字符串,但这似乎没有效果。

我在我的选择中尝试了一个 case 语句,如下所示:

(仍然导致“.00”)

我已经尝试过这样的变化:

(仍然导致“.00”)

和:

(结果为'.0000000000000000000')

这个愚蠢的小问题要了我的命。谁能告诉我如何将零 Money 数据类型数据库值作为“0.00”放入平面文件中?

0 投票
1 回答
1174 浏览

ssis - SSIS 数据流更新

我试图找出处理以下情况的最佳方法。

概述

付款会在一天中收集并存储在表 (SQL Server) 中。每天结束时,这些付款将被导出并插入另一个数据库 (Oracle)。成功插入 Oracle 数据库的付款将使用时间戳进行更新。

过程

第 1 步 - 每个支付记录都必须与 Oracle 数据库匹配,以确保支付记录引用的值存在于 Oracle 数据库中。满足此步骤的付款将向下移动。

第 2 步 - 付款被插入 Oracle 数据库,任何插入错误都被重定向到记录集。

方法

我将 OLEDB 数据源用于付款(SQL Server)和查找值(Oracle),然后使用 Merge Join(Left Outer)将数据附加到付款中。使用 Merge Join 结果的条件拆分,我将匹配查找数据的付款向下传递到 OLEDB 目标。

我需要更新原始付款表,仅包含将其放入插入的付款。使用条件拆分,我可以确定在步骤 1 中哪些行不匹配,并在最终插入的错误输出上重定向行,我可以确定哪些行在那里失败。但是,我没有看到确定已成功插入的付款的最佳方法以及更新原始表的最佳方法。

0 投票
2 回答
43565 浏览

sql - 是否可以在 SSIS 表达式中执行“LIKE”语句?

我正在使用派生列任务使用 CASE WHEN 语句更改列数据。但是,我需要能够说..

SQL 代码将是:


在 SSIS 表达式语言中,这将是:


是否可以使用 LIKE 运算符?

0 投票
1 回答
12501 浏览

sql-server-2005 - 创建 SSIS 作业时出现“所选数据源在远程计算机上”错误

我正在我的工作站上开发 SSIS 作业,数据流任务在我的本地工作站上打开一个逗号分隔的平面文件,并将数据导入远程服务器上的 SQL 服务器数据库。

当我尝试在我的 SQL 目标对象中选择目标表时,它给了我以下错误:

选定的数据源位于远程计算机上。批量插入操作可以在本地计算机上执行。

如何解决此问题,以便我可以测试我的 SSIS 包。

0 投票
1 回答
3921 浏览

sql - 在 SSIS 数据流任务中使用多个源

对于我的数据流任务,我有一个 OLEDB 源。在本节的 SQL 命令部分,我根据来自两个不同数据库的表编译了一个选择查询,这些表保存在同一个实例上。每次我运行它都会出错,但是当我将表移动到同一个数据库(出于测试目的)时它会起作用。

我从这个猜测源数据需要来自同一个数据库,但无论如何都存在这个问题?我尝试使用查找,但我无法让它工作。我可以在源数据库中创建一个视图,但我猜必须有一种方法可以将它全部保存在包中。

先感谢您!这是我在 OLE DB 源中使用的查询:

select * from commoncomponents.meta.ItemTypeLabelDefinition where internalid not in ( select internalid from iscanimport.dbo.ItemTypeLabelDefinition )