首页 > 解决方案 > 在 DataStage Transformer 中嵌套 If

问题描述

我在变压器中使用下面的嵌套 if 条件。它是如何给出错误的。有人可以帮助我解决错误:

IF IsNotNull(lnkReadHabsClob.NUM_57_A) THEN ( IF LEN57A < 2 THEN Trim(lnkReadHabsClob.BENEFICIARY_FI_SKEY_57A) ELSE IF LEN57A > 2 THEN Trim(lnkReadHabsClob.BENEFICIARY_FI_SKEY_57A[LEN57A,11] ) ) ELSE ( IF IsNotNull(lnkReadHabsClob.NUM_58_A) AND LEN58A < 2 THEN TRIM(lnkReadHabsClob.BENEFICIARY_FI_SKEY_58A) ELSE IF IsNotNull(lnkReadHabsClob.NUM_58_A) AND LEN58A > 2 THEN TRIM(lnkReadHabsClob.BENEFICIARY_FI_SKEY_58A[LEN58A,11])) ELSE lnkReadHabsClob.BENEFICIARY_FI_FI_SKEY_58)A

标签: if-statementnesteddatastagetransformer

解决方案


首先,格式是一个问题-在您的问题中使用像这样格式的文本,没有人可以看到任何东西。

格式化后我建议你

  • 检查子字符串 [LEN58A,11] - LEN58A 是什么意思?如果这不是阶段变量,则可能是您的问题(多次使用)
  • 条件相同的潜在问题:LEN57A < 2
  • 有一个 LEN57A < 2 和 LEN57A > 2 条件,但如果它等于 2 怎么办 - 但这只是一个潜在的逻辑问题

推荐阅读