我创建了SSIS包,将管道分隔的平面文件数据加载到Sql server目标表中。为实现这一点,我使用了数据流任务,平面文件源和ole db目标。我已将平面文件连接管理器配置为使用管道分隔符作为列分隔符,将行分隔符配置为“CRLF”。在这种情况下,为我的包成功导入管道分隔的平面文件数据到SQL服务器目标表中。现在的问题是,如果用户尝试导入逗号分隔文件,我们是否有任何选项可以使作业失败?当我试图导入逗号分隔文件时,作业没有失败,没有记录移动到目标表。
答案 0 :(得分:0)
您可以在运行数据流之前使用简单的脚本任务验证文件,假设您希望行上有5个管道:
Dim x As New System.IO.StreamReader("your file")
Dim pipes As String()
While x.Peek() <> -1
pipes = x.ReadLine.ToString().Split("|")
If pipes.Length <> 6 Then
Dts.TaskResult = ScriptResults.Failure
Return
End If
End While
Dts.TaskResult = ScriptResults.Success