[pgsql-jp: 29916] Re: ORACLEでいう DUAL 表は?

KASAHARA Norio no @ kasas.org
2003年 5月 16日 (金) 13:38:21 JST


かさはらと言います。こんにちは。

On 2003.5.15, at 21:10 Japan, sugita @ sra.co.jp wrote:
>   DUAL なんてのを用意することが、上記以上の意味を持たないならば、Oracle の言語
> 仕様上のバグです。

あえて刺激的な表現をされているのだと思いますが、あまりに乱暴なので、少しコメン
トさせてください。
仕様にバグなんてものはありません。その仕様がリーズナブルなものかどうかはともか
く、どんな仕様にしようがそれはベンダーの自由です。その仕様が良いものであれば
いずれANSI/ISOなど標準に取り入れられて行くでしょう。

PostgreSQLのリファレンスマニュアルを見ていただければ分かりますが、SELECT文
でFROM句を省略できるのは、PostgreSQLの独自仕様です。
FROM句を常に必要とするOracleの方がANSI/ISO SQLに忠実だと言えるでしょう。

Oracleで
    SELECT * FROM DUAL;
としてみれば分かりますが、DUALは1行1列の小さなテーブルです。DUALという
のは特殊なデータベースオブジェクトでも何でもありません。

同じことを実現するために、SQLを独自拡張しているPostgreSQLと、そうでない
Oracleとどっちの仕様がバグっているのでしょうね。
(もちろん、どっちの仕様もバグっていません)
--
カさはらのりお     no @ kasas.org




pgsql-jp メーリングリストの案内