@CASE
@CASE 함수를 사용하여 일련의 값 테스트에 따라 값을 선택합니다. @CASE로 테스트할 수 있는 사례의 수에는 제한이 없습니다. 사례 수가 많은 경우 최상의 성능을 위해 가장 자주 발생하는 조건을 먼저 나열합니다.
이 함수의 경우 Oracle GoldenGate는 이스케이프 시퀀스를 사용하여 유니코드의 문자열 열 또는 Microsoft Windows, UNIX 및 Linux 운영 체제의 고유 문자 인코딩에 문자를 나타낼 수 있도록 지원합니다. 인수가 유니코드로 제공된 경우 대상 열은 SQL 유니코드 데이터 유형이어야 합니다.
이 함수는 NCHAR 또는 NVARCHAR 데이터 유형을 지원하지 않습니다.
구문
@CASE (<value>, <test_value1>, <test_result1>
[, <test_value2>, <test_result2>] [, ...]
[, <default_result>]
<value>
테스트할 값(예: 열 이름) 리터럴은 작은 따옴표로 묶습니다.
<test_value>
<value>에 대해 적합한 결과입니다. 리터럴은 작은 따옴표로 묶습니다.
<test_result>
<test_value> 값을 기반으로 반환할 값입니다. 리터럴은 작은 따옴표로 묶습니다.
<default_result>
<value>로 인해 <test_value> 값이 없는 경우 반환할 기본값입니다. 리터럴은 작은 따옴표로 묶습니다.
예제
예 1
PRODUCT_CODE가 CAR인 경우 A car를 반환하고 PRODUCT_CODE가 TRUCK인 경우 A truck를 반환합니다. PRODUCT_CODE가 처음 두 사례에 모두 맞지 않을 경우 기본값이 지정되지 않았으므로 FIELD_MISSING 표시가 반환됩니다.
@CASE (PRODUCT_CODE, 'CAR', 'A car', 'TRUCK', 'A truck')
예 2
다음은 기본값을 제공한다는 점을 제외하고 이전 예제와 유사합니다. PRODUCT_CODE가 CAR 또는 TRUCK가 아닌 경우 함수는 A vehicle를 반환합니다.
@CASE (PRODUCT_CODE, 'CAR', 'A car', 'TRUCK', 'A truck', 'A vehicle')