我有一个复杂的转换,其中查找阶段指定了大约 30 个不同/特定的字符串操作之一,这些操作必须在一行上完成。我想知道如何在 DataStage 中有效地做到这一点?
要求是这样的:
If
col_a = 1
Then
col_b := some_string_function(col_c)
Else If
col_a = 2
Then
col_b := some_other_string_function(col_d)
Else If
col_a = 3
Then
col_b := yet_another_string_function(col_c & col_d)
Else If ...
... 等等。
到目前为止我探索的内容:
我的第一个冲动是将代码(字段名称和字符串函数)作为字符串/字段包含在查找表中,并在变压器阶段表达式中查找后使用该代码。但是,似乎没有办法将字符串评估为转换器表达式中的代码?
我想出的另一个解决方案是将代码放入transformer stage内的许多嵌套控制语句中,这似乎非常低效,尤其是因为DataStage似乎没有提供与“CASE”/“SWITCH”等等效的控制语句”。或者是吗?
用输入到不同查找/变压器阶段的开关阶段替换(部分)控制语句似乎更有效,因为它们可以并行完成,但设计起来很痛苦。
我还没有涉足服务器例程。