@CASE

Mit der Funktion @CASE können Sie einen Wert auswählen, der von einer Reihe von Wertetests abhängt. Die Anzahl der Fälle, die Sie mit @CASE testen können, ist unbegrenzt. Wenn die Anzahl der Fälle groß ist, listen Sie zuerst die am häufigsten auftretenden Bedingungen auf, um die beste Performance zu erzielen.

Für diese Funktion unterstützt Oracle GoldenGate die Verwendung einer Escape-Sequenz zur Darstellung von Zeichen in einer Zeichenfolgenspalte in Unicode oder in der nativen Zeichencodierung der Betriebssysteme Microsoft Windows, UNIX und Linux. Die Zielspalte muss ein SQL-Unicode-Datentyp sein, wenn ein Argument als Unicode angegeben wird.

Diese Funktion unterstützt die Datentypen NCHAR oder NVARCHAR nicht.

Syntax

@CASE (<value>, <test_value1>, <test_result1>
[, <test_value2>, <test_result2>] [, ...]
[, <default_result>]

<value>

Ein zu testender Wert, z.B. ein Spaltenname. Schließen Sie Literale in einfache Anführungszeichen ein.

<test_value>

Ein gültiges Ergebnis für <value>. Schließen Sie Literale in einfache Anführungszeichen ein.

<test_result>

Ein Wert, der basierend auf dem Wert von <test_value> zurückgegeben wird. Schließen Sie Literale in einfache Anführungszeichen ein.

<default_result>

Ein Standardwert, der zurückgegeben wird, wenn <value> zu keinem der <test_value>-Werte führt. Schließen Sie Literale in einfache Anführungszeichen ein.

Beispiele

Beispiel 1

Im Folgenden wird A car zurückgegeben, wenn PRODUCT_CODE CAR und A truck ist, wenn PRODUCT_CODE TRUCK ist. Wenn PRODUCT_CODE keinem der ersten beiden Fälle entspricht, wird eine FIELD_MISSING-Indikation zurückgegeben, weil kein Standardwert angegeben wurde.

@CASE (PRODUCT_CODE, 'CAR', 'A car', 'TRUCK', 'A truck')

Beispiel 2

Die folgende Abbildung ähnelt dem vorherigen Beispiel, bietet jedoch einen Standardwert. Wenn PRODUCT_CODE weder CAR noch TRUCK ist, gibt die Funktion A vehicle zurück.

@CASE (PRODUCT_CODE, 'CAR', 'A car', 'TRUCK', 'A truck', 'A vehicle')