回答:
CTEの後に記述できるのは1つだけです。ただし、前のものに基づいて後続の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
テーブルを使用することです。