我进行导入并将列转换为其他数据类型。在导入期间,我检查是否可以将存储在列中的值转换为目标数据类型。如果没有,我将默认值例如我将字符串转换为int,当我无法转换字符串时,我插入-1。
此时此刻,如果我可以将错误的条目记录到单独的表中(例如,而不是解析字符串'1234''xze'到达,因此我将-1放入目标表,并将'xze'放入日志表。
(T-)SQL是否可能?
干杯,
安德烈亚斯
最佳答案
使用SSIS数据流任务也很容易做到。您可能尝试的任何数据转换或查找步骤都具有“成功”输出和“错误”输出。您只需将所有错误输出定向到“联合”转换,然后从那里转换到公共(public)错误表。所有成功的结果都将进入“成功”表。您甚至可以将其他详细信息添加到错误表中,以给您明确的错误消息。
这样做的好处是,随着整个缓冲区在系统中移动,您仍然可以获得高性能。最终,您将拥有充满有效数据的缓冲区,这些缓冲区将被批量写入成功表,而拥有充满错误的小缓冲区将被写入错误表。当一行发生错误时,该行将简单地从一个行缓冲区移到另一个缓冲区中。