[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 メーリングリストの案内