ASOF JOIN 구문: 키워드 사용 제한(보류 중)¶
ASOF JOIN 기능은 다음과 같이 작동합니다.
- 변경 전:
오브젝트 이름, 오브젝트 별칭, 세션 변수, 바인드 변수로 ASOF 및 MATCH_CONDITION을 사용하는 것은 제한되지 않습니다.
- 변경 후:
ASOF 및 MATCH_CONDITION은 새 키워드입니다. SELECT 명령과 세션 또는 바인드 변수를 설정하거나 사용하는 명령에서는 이러한 키워드의 사용이 제한됩니다.
오브젝트 이름
SELECT 문이 ASOF 또는 MATCH_CONDITION을 테이블, 뷰 또는 인라인 뷰의 이름으로 사용하는 경우 다음과 같이 식별해야 합니다.
이름에 큰따옴표를 포함하여 오브젝트를 생성한 경우 동일한 큰따옴표를 포함한 이름을 사용합니다.
이름에 큰따옴표 없이 오브젝트를 생성한 경우 큰따옴표와 대문자를 사용합니다.
예를 들어 다음 문은 더 이상 허용되지 않으며 오류를 반환합니다.
SELECT * FROM asof; WITH match_condition AS (SELECT * FROM T1) SELECT * FROM match_condition;
큰따옴표를 사용하여 오브젝트를 생성한 경우 큰따옴표를 사용하여 문제를 해결하십시오.
SELECT * FROM "asof"; WITH "match_condition" AS (SELECT * FROM T1) SELECT * FROM "match_condition";
큰따옴표 없이 오브젝트를 생성한 경우 큰따옴표와 대문자를 사용하여 문제를 해결하십시오.
SELECT * FROM "ASOF"; WITH "MATCH_CONDITION" AS (SELECT * FROM T1) SELECT * FROM "MATCH_CONDITION";
참고
애플리케이션에서 이러한 오브젝트 이름의 사용을 중단하는 것이 좋습니다.
별칭 이름
SELECT 문이 ASOF 또는 MATCH_CONDITION을 별칭으로 사용하는 경우 별칭 앞에 AS를 사용하거나 별칭을 큰따옴표로 묶어야 합니다. 예를 들어 다음 문은 더 이상 허용되지 않으며 오류를 반환합니다.
SELECT * FROM t1 asof; SELECT * FROM t2 match_condition;
다음 방법 중 하나로 문제를 해결하십시오.
SELECT * FROM t1 AS asof; SELECT * FROM t1 "asof"; SELECT * FROM t2 AS match_condition; SELECT * FROM t2 "match_condition";
변수 이름
이름이 ASOF 또는 MATCH_CONDITION인 세션 변수나 바인드 변수를 사용 중이고 해당 이름이 생성될 때 큰따옴표로 묶이지 않은 경우 이름을 바꾸거나 제거해야 합니다.
예를 들어 더 이상
asof
라는 세션 변수를 설정할 수 없습니다.set asof ='2024/01/15';
001003 (42000): SQL compilation error: syntax error line 1 at position 4 unexpected 'asof'.
그러나 명시적으로 큰따옴표로 묶이고 이름이
"asof"
또는"ASOF"
인 변수를 설정할 수 있습니다.set "asof" ='2024/01/15';
+----------------------------------+ | status | |----------------------------------| | Statement executed successfully. | +----------------------------------+
:asof
및:match_condition
과 같은 바인드 변수에도 동일한 규칙이 적용됩니다.
참조: 1138