@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')