@EVAL
您可以使用 @EVAL 函數,根據一系列的獨立測試來選取值。您可測試的條件數目沒有限制。如果案例數目很大,請先列出最常遇到的條件以獲得最佳效能。
對於此函數,Oracle GoldenGate 支援使用遁離序列來代表 Unicode 字串資料欄中的字元,或 Microsoft Windows、UNIX 以及 Linux 作業系統的原生字元編碼中的字元。如果提供任何引數作為 Unicode,則目標資料欄必須是 SQL Unicode 資料類型。
語法
@EVAL (<condition>, <result>
[<condition>, <result>] [, ....]
[, <default_result>])
<condition>
使用標準條件運算子的條件式測試。可指定多個條件。
<result>
根據條件測試結果傳回的值或字串。將文字括在單引號內。為每個使用的條件指定結果。
<default_result>
如果沒有滿足任何條件時要傳回的預設結果。預設結果為選擇性。
##
範例
在下列範例中,如果 AMOUNT 資料欄大於 10000,則會傳回 high amount 的結果。如果 AMOUNT 大於 5000 (且小於或等於 10000),則會傳回 somewhat high 的結果 (除非已滿足先前的條件)。如果不滿足任何條件,則會傳回 COLUMN_MISSING 指示,因為未指定預設結果。
AMOUNT_DESC = @EVAL (AMOUNT > 10000, 'high amount', AMOUNT > 5000, 'somewhat high')
以下為上述範例的修改內容。它會傳回相同的結果,除了已指定預設值之外,如果 AMOUNT 小於或等於 5000,則會傳回 lower 的結果。
@EVAL (AMOUNT > 10000, 'high amount', AMOUNT > 5000, 'somewhat high', 'lower')