답변:
CTE 뒤에는 한 가지만 진술 할 수 있습니다. 그러나 이전 CTE를 기반으로 후속 CTE를 정의 할 수 있습니다.
WITH t1 AS (
SELECT a, b, c
FROM table1
)
, t2 AS (
SELECT b
FROM t1
WHERE a = 5
)
SELECT *
FROM t2;
행을 계산하고 동일한 결과 집합에서 참조 커서를 채우려 고하면 다음 중 하나를 수행하는 것이 더 적절할 수 있습니다.
마지막으로 쿼리가 충분히 간단한 경우에는 카운트에 대해 한 번, 커서에 대해 다시 쓰십시오. 이 경우 단순성과 가독성은 DRY 원칙 보다 우선합니다 .
아니요, CTE 또는 with
절은 단일 문의 범위 내에서 정의 됩니다.
때로는 다음과 같은 단일 진술로 예상보다 많은 것을 할 수 있습니다.
with w as (select v from t3)
insert all into t1(v) values(v)
into t2(v) values(v)
select v from w;
임시 결과 세트를 저장하는 '일반적인'Oracle 방법은 GTT :
GLOBAL TEMPORARY
table 을 사용하는 것 입니다.