ASOF JOIN 구문: 키워드 사용 제한(보류 중)

주의

이 동작 변경 사항은 2024_01 번들에 있습니다.

번들의 현재 상태는 번들 기록 섹션을 참조하십시오.

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;
Copy

큰따옴표를 사용하여 오브젝트를 생성한 경우 큰따옴표를 사용하여 문제를 해결하십시오.

SELECT * FROM "asof";
WITH "match_condition" AS (SELECT * FROM T1)
  SELECT * FROM "match_condition";
Copy

큰따옴표 없이 오브젝트를 생성한 경우 큰따옴표와 대문자를 사용하여 문제를 해결하십시오.

SELECT * FROM "ASOF";
WITH "MATCH_CONDITION" AS (SELECT * FROM T1)
  SELECT * FROM "MATCH_CONDITION";
Copy

참고

애플리케이션에서 이러한 오브젝트 이름의 사용을 중단하는 것이 좋습니다.

별칭 이름

SELECT 문이 ASOF 또는 MATCH_CONDITION을 별칭으로 사용하는 경우 별칭 앞에 AS를 사용하거나 별칭을 큰따옴표로 묶어야 합니다. 예를 들어 다음 문은 더 이상 허용되지 않으며 오류를 반환합니다.

SELECT * FROM t1 asof;
SELECT * FROM t2 match_condition;
Copy

다음 방법 중 하나로 문제를 해결하십시오.

SELECT * FROM t1 AS asof;
SELECT * FROM t1 "asof";
SELECT * FROM t2 AS match_condition;
SELECT * FROM t2 "match_condition";
Copy

변수 이름

이름이 ASOF 또는 MATCH_CONDITION인 세션 변수나 바인드 변수를 사용 중이고 해당 이름이 생성될 때 큰따옴표로 묶이지 않은 경우 이름을 바꾸거나 제거해야 합니다.

예를 들어 더 이상 asof 라는 세션 변수를 설정할 수 없습니다.

set asof ='2024/01/15';
Copy
001003 (42000): SQL compilation error:
syntax error line 1 at position 4 unexpected 'asof'.

그러나 명시적으로 큰따옴표로 묶이고 이름이 "asof" 또는 "ASOF" 인 변수를 설정할 수 있습니다.

set "asof" ='2024/01/15';
Copy
+----------------------------------+
| status                           |
|----------------------------------|
| Statement executed successfully. |
+----------------------------------+

:asof:match_condition 과 같은 바인드 변수에도 동일한 규칙이 적용됩니다.

참조: 1138