0

次のクエリを実行しています。

explain plan for  
with Foo   
as (  
     select * from my_table 
   )  
select * from Foo  
where x = 7;

これにより、Oracle10g で無効な SQL ステートメントの例外が発生します。説明計画がなければ、with ステートメントは正しく実行されます。SQL Developerのコンテキスト内でこのエラーが発生するのはなぜですか?

4

2 に答える 2

1

余分な括弧があります:

explain plan for  
with Foo   
as (  
     select * from my_table)  -- < remove this
   )  
select * from Foo  
where x = 7;
于 2013-01-17T16:33:04.020 に答える
0

このニュアンスについてはわかりませんが、説明する別の書き方があります。

Select *
  From (
        Select * From my_table
       ) Foo
 Where Foo.x = 7;

with 句はうまく移植できず、私の経験ではオプティマイザーや動的 from 句によって評価されないため、避けていますが、それらは古い経験です。

于 2013-01-17T18:09:20.447 に答える