我尝试运行时收到错误消息SSIS Package,错误是:
[平面文件源[1]]错误:找不到列"列8"的列分隔符.
[平面文件源[1]]错误:跳过数据行时发生错误.
[SSIS.Pipeline]错误:SSIS错误代码DTS_E_PRIMEOUTPUTFAILED.组件"Flat File Source"(1)上的PrimeOutput方法返回错误代码0xC0202091.当管道引擎调用PrimeOutput()时,组件返回失败代码.失败代码的含义由组件定义,但错误是致命的,管道停止执行.在此之前可能会发布错误消息,其中包含有关失败的更多信息.
大多数csv文件加载没有问题,但少数csv文件没有加载,在此之前,包已经正常工作多年.
我20130131在csv中有一个日期,我试图转换为2013-13-01使用SSIS中的派生列.我使用过这个表达式,但它似乎不起作用.
(DT_DBTIMESTAMP)(SUBSTRING(DATE_DECISION_TO_REFER,1,2)+" - "+ SUBSTRING(DATE_DECISION_TO_REFER,3,2)+" - "+ SUBSTRING(DATE_DECISION_TO_REFER,5,2))
如何重写此表达式以生成具有数据类型值的正确输出DT_DBTIMESTAMP?
我想要实现的是Column 5:
Column 1 Columns 2 Column 3 Column 4 Column 5
A B D A|B|D
Run Code Online (Sandbox Code Playgroud)
我使用了派生列:
(DT_STR,50,1252)([A] + "|" + [B] + "|" + [C] + "|" + [D])
Run Code Online (Sandbox Code Playgroud)
但我结束了:
Column 1 Columns 2 Column 3 Column 4 Column 5
A B D A|B||D
Run Code Online (Sandbox Code Playgroud)
我很难找到合适的解决方案.
我有两列ActivityCount和ParentValue.我创建了一个表达式:
ROUND((ActivityCount / ParentValue) / 100,16) * 100
Run Code Online (Sandbox Code Playgroud)
但问题是它返回NULL了一些列,我想替换NULL为0.我似乎无法找到答案.
我尝试编写一个SSIS表达式,以便在分隔符之前获取字符串的正确部分,然后将新字符串放入新列中.我在派生列中使用了Substring和Findstring,但是我遇到了麻烦.
Company
Virgin Altantic - F30008
Google - F38115
Run Code Online (Sandbox Code Playgroud)
我需要检索F30008和F38115.
我用了这个表达式:
(DT_STR,65,1252)(FINDSTRING(Company,"- ",1) != 0 ? (SUBSTRING(Company,1,FINDSTRING(Company,"-",1) + 2)) : Company)
从这个表达式我得到:
Company
Virgin Altantic -
Google -
Run Code Online (Sandbox Code Playgroud) 我有一个名为DT_APP包含两种格式的日期的列
Sep 4 2012 6:19PM 2013-04-30 23:38.34我需要在列中将1)转换为2)但我需要它nvarchar(19)在数据类型中nvarchar(19).
我很欣赏它应该是Datetime格式化但它被设置为nvarchar(19).
谢谢,