我正在使用SSIS将一些数据从数据库传输到另一个数据库。
有一个逻辑,我需要检查一些条件,每个条件都有一个错误信息。根据要求,应该有一个列应该附加错误文本。
我尝试在“派生列”中创建一个列,然后将错误文本分配给它。
对于第二种情况,我在“派生列”中创建了一个新列,添加了新列的新列创建了第二列,直到其他情况结束。
现在问题是它运作不好而且我有。
我想知道在SSIS中向列中添加新文本行的最佳解决方案是什么。
伪代码应如下所示:
String error_text = "";
if logic 1 failed then error_text+= "error1"
if logic 2 failed then error_text+= "error2"
if logic 3 failed then error_text+= "error3"
我的数据库是Oracle,我正在使用OLEDB连接。
答案 0 :(得分:2)
首先尝试使用条件拆分拆分数据,然后对每个错误条件使用派生列。这应该有所帮助。此外,您可以尝试在Oracle中创建CASE语句,看看是否更容易。
答案 1 :(得分:2)
您有以下选择:
为派生列任务上的每个验证创建一个新列。这应该使表达式简单易用。生成另一个派生列任务之后,将所有可能的错误连接在一起,这将是您的最终错误消息。
通过将所有验证表达式合并为一个巨大的,难以维护甚至更难阅读的SSIS表达式,创建一个包含所有可能错误消息的新列。 SSIS语法不适合这些案例。
根据您的情况,您的数据源中的逻辑是否在您的Oracle数据库中。 SQL审查和维护(通常更快)SSIS表达式要简单得多。
使用自定义脚本(如VB或C#)检查条件并构建错误消息。它比使用SSIS表达式更好,但需要更多的编程知识。
如果您的错误验证数量减少(低于10),那么我建议您采用第一种方法。如果你对C#/ VB有所了解,或者你可以预期你需要进行大量的审查和维护,那么最后一个将是最好的。