次のクエリを実行しています。
explain plan for
with Foo
as (
select * from my_table
)
select * from Foo
where x = 7;
これにより、Oracle10g で無効な SQL ステートメントの例外が発生します。説明計画がなければ、with ステートメントは正しく実行されます。SQL Developerのコンテキスト内でこのエラーが発生するのはなぜですか?
次のクエリを実行しています。
explain plan for
with Foo
as (
select * from my_table
)
select * from Foo
where x = 7;
これにより、Oracle10g で無効な SQL ステートメントの例外が発生します。説明計画がなければ、with ステートメントは正しく実行されます。SQL Developerのコンテキスト内でこのエラーが発生するのはなぜですか?
余分な括弧があります:
explain plan for
with Foo
as (
select * from my_table) -- < remove this
)
select * from Foo
where x = 7;
このニュアンスについてはわかりませんが、説明する別の書き方があります。
Select *
From (
Select * From my_table
) Foo
Where Foo.x = 7;
with 句はうまく移植できず、私の経験ではオプティマイザーや動的 from 句によって評価されないため、避けていますが、それらは古い経験です。