Oracle 23c부터 FROM 절을 사용하지 않은 SELECT 문을 사용할 수 있습니다.
You can now run SELECT expression-only queries without a FROM clause. This new feature improves SQL code portability and ease of use for developers.
아래 SELECT 문은 FROM 절을 사용하지 않습니다. 23.2 버전은 결과가 반환되지만, 19.3 버전은 에러가 발생합니다. 1-1번 쿼리의 실행 계획에서 내부적으로 DUAL 테이블이 사용되는 것을 알 수 있습니다.
-- 1-1: 23.2
SELECT 1 AS c1;
C1
--
1
1개의 행이 선택되었습니다.
---------------------------------
| Id | Operation | Name |
---------------------------------
| 0 | SELECT STATEMENT | |
| 1 | FAST DUAL | |
---------------------------------
-- 1-2: 19.3
SELECT 1 AS c1;
ORA-00923: FROM 키워드가 필요한 위치에 없습니다.
10053 트레이스에서 DUAL 테이블이 사용되는 것을 확인할 수 있습니다.
-- 2
Final query after transformations:******* UNPARSED QUERY IS *******
SELECT 1 "C1" FROM "SYS"."DUAL" "DUAL"