SSIS在这种情况下不予理会。 p>
在我的平面文件中,我们有像这样的普通观看记录
"1","2","STATUSCHANGED","A","02-MAY-12 21:52:34","","Re","Initial review",""
有些像这样; (记录遍布几行)
"1","2","SALESNOTIFICATIONRESPOND","Ac","02-MAY-12 21:55:19","From: W, J
Sent: Wednesday, May 08, 2012 2:00 PM
To: XXXX, A; Acost
Subject: RE: Notification Id 1219 - Qu ID XXXXXX
I got this from earlier today. Our team is reviewing the request.
Thanks,
Hi,
This account belongs to D please approve/deny.
Thanks!
Claud","","","Reassign"
所以看看NOTEPAD +中的文件,这是惊人的,它告诉我,在那个分布在几行的字段中,我应该取出该字段中的所有{CR} {LF}。
此文件的行分隔符为LF,文本限定符为“。
我需要对200个文件的集合做两件事吗?
任何人都知道如何在windows,dos或vba中为如此大量的文件执行此操作以使其自动化?
答案 0 :(得分:3)
对于这样的数据,我更喜欢使用脚本组件来执行解析。我写了blog post describing one approach。
希望这有帮助, 安迪
答案 1 :(得分:1)
Powershell将为{CR} {LF}执行此操作,但如果您之前从未使用过PowerShell,则可能需要一段时间才能编码。
出现在田野中间的“限定词是一个真正的混乱,你可能能够制定规则来清理它,但不能保证你会成功。
答案 2 :(得分:1)
如果正确的行终止符只是LF并且您确定每一行都被LF正确终止,那么您可以删除所有{CR} {LF},但您实际上并不需要。只要{CR} {LF}恰好在一对文本限定符中,它就应该按字面意思导入。
是的,当整个字段被文本限定符包围时,您肯定需要从实际字段中删除任何文本限定符(或根据您的意愿转义它们)。这会引起混淆。
就个人而言,我会通过编写一个python脚本来预处理数据,然后再将其提供给SSIS,或者让脚本将整个内容导入到SQL中来解决这个问题。
答案 3 :(得分:0)
我同意安迪的观点。我有一个类似的问题,我用脚本组件任务处理它。 您的代码看起来像这样(不处理CR LF问题)
Imports System
Imports System.Data
Imports System.Math
Imports Microsoft.SqlServer.Dts.Pipeline.Wrapper
Imports Microsoft.SqlServer.Dts.Runtime.Wrapper
<Microsoft.SqlServer.Dts.Pipeline.SSISScriptComponentEntryPointAttribute> _
<CLSCompliant(False)> _
Public Class ScriptMain
Inherits UserComponent
Public Overrides Sub Input0_ProcessInputRow(ByVal Row As Input0Buffer)
Dim strRow As String
Dim strColSeperator As String
Dim rowValues As String()
strRow = Row.Line.ToString()
If strRow.Contains(",") Then
strColSeperator = (",")
ElseIf strRow.Contains(";") Then
strColSeperator = ";"
End If
rowValues = Row.Line.Split(CChar(strColSeperator))
If (rowValues.Length > 1) Then
Row.Code = rowValues.GetValue(0).ToString()
Row.Description = rowValues.GetValue(1).ToString()
Row.Blank = rowValues.GetValue(2).ToString()
Row.Weight = rowValues.GetValue(3).ToString()
Row.Scan = rowValues.GetValue(4).ToString()
End If
End Sub
End Class
提供了一步一步的教程