标签: dataflowtask

是否可以在SSIS表达式中执行"LIKE"语句?

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

SQL代码将是:

CASE WHEN Column01 LIKE '%i%' THEN '0' ELSE '1' END
Run Code Online (Sandbox Code Playgroud)


在SSIS表达语言中将是:

[Column01] == "i" ? "0" : "1"  (that's for equals i, not, LIKE %i%.
Run Code Online (Sandbox Code Playgroud)


是否可以使用LIKE运算符?

sql ssis dataflowtask case-statement sql-like

14
推荐指数
2
解决办法
3万
查看次数

如何让SSIS数据流将'0.00'放在平面文件中?

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

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

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

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

  CASE WHEN columnValue = 0 THEN 
     '0.00' 
  ELSE 
      columnValue 
  END
Run Code Online (Sandbox Code Playgroud)

(仍然导致'.00')

我尝试过这样的变体:

 CASE WHEN columnValue = 0 THEN
     convert(decimal(12,2), '0.00') 
 ELSE 
     convert(decimal(12,2), columnValue) 
 END
Run Code Online (Sandbox Code Playgroud)

(仍然导致'.00')

和:

 CASE WHEN columnValue = 0 THEN
     convert(money, '0.00') 
 ELSE 
     convert(money, columnValue) 
 END
Run Code Online (Sandbox Code Playgroud)

(结果为'.0000000000000000000')

这个愚蠢的小问题就是杀了我.任何人都可以告诉我如何将零Money数据类型数据库值作为'0.00'添加到平面文件中?

ssis dataflow flat-file dataflowtask

9
推荐指数
2
解决办法
2万
查看次数

如何以编程方式创建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任务.什么是绰号...复制专栏?

ssis dataflowtask

7
推荐指数
1
解决办法
4452
查看次数

创建SSIS作业时,"所选数据源位于远程计算机上"错误

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

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

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

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

import ssis sql-server-2005 flat-file dataflowtask

6
推荐指数
1
解决办法
1万
查看次数

使用SSIS更新表

我试图基于公共密钥更新表中的字段与来自另一个表的数据.如果它是直接的SQL,它将是这样的:

Update EHSIT
set e.IDMSObjID = s.IDMSObjID
from EHSIT e, EHSIDMS s
where e.SITENUM = s.SITE_CODE
Run Code Online (Sandbox Code Playgroud)

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

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

我准备将我的源表导出到Excel或其他东西,然后尝试从那里输入,虽然似乎所有这些都会让我删除数据转换步骤.

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

ssis sql-server-2005 dataflowtask

6
推荐指数
1
解决办法
2万
查看次数

除非手动保存,否则无法使用SSIS打开excel文件

除非手动打开文件并单击“保存”,否则我在使用SSIS处理excel文件时遇到问题。
我注意到,如果文件是.xls或.xlsx,它不会起作用

该文件是从SSRS项目下载到Excel的,
我可以使用文件系统任务来移动,重命名,删除等文件,但是当我尝试使用数据流任务来访问文件中的内容时,出现错误外部表的格式不正确。
然后,我必须打开文件,单击“保存”,文件处理正常。

不知道这是否意味着什么。...
我注意到,当我在记事本中打开原始文件时,第一行包括:

xl / workbook.xml

保存文件后,第一行更改为:

[Content_Types] .xml 

使用Microsoft Visual Studio 2012。

错误:

错误:TransferMoneyReconcile上的错误0xC0202009,连接管理器“ Excel连接管理器”:SSIS错误代码DTS_E_OLEDBERROR。发生OLE DB错误。错误代码:0x80004005。OLE DB记录可用。来源:“ Microsoft Office Access数据库引擎”结果:0x80004005说明:“外部表的格式不正确。”

ExcelConnectionString:

Provider = Microsoft.ACE.OLEDB.12.0;数据源= \ 192.168.234.567 \ ftp \ Sample \ Money \ Archive_Transfer Money to Manager.xlsx; Extended Properties =“ EXCEL 12.0 XML; HDR = NO”;

任何帮助/建议表示赞赏!
谢谢!
史蒂文

excel ssis dataflowtask reporting-services

5
推荐指数
1
解决办法
3027
查看次数

SSIS DataFlowTask DefaultBufferSize 和 DefaultBufferMaxRows

我有一个任务,它使用数据流任务将记录从 Oracle db 提取到我们的 SQL。该套餐每天运行约 45 分钟。此包将刷新约 15 个表。除了一个,其他都是增量更新。所以几乎每个任务都运行 2 到 10 分钟。

完全更换的一包运行长达 25 分钟。我想调整此数据流任务以使其运行得更快。

表中只有 400k 行。我确实阅读了一些关于 DefaultBufferSize 和 DefaultBufferMaxRows 的文章。我有以下疑问。

  1. 如果我可以将 DefaultBufferSize 设置为 100 MB,是否有任何地方可以查看或分析我可以提供多少。

  2. DefaultBufferMaxRows 设置为 10k。即使我给了 50k 并且我为 DefaultBufferSize 提供了 10 MB,如果它只能容纳大约 20k,那么 SSIS 会做什么。只是忽略那些 30k 记录还是它仍然会拉出所有那些 50k rocords(假脱机)?

  3. 我可以使用日志记录选项来设置适当的限制吗?

sql ssis bids dataflowtask sql-server-2008

5
推荐指数
1
解决办法
6115
查看次数