2016-12-02 5 views

答えて

3

from句のないクエリは許可されません。

SELECT 'Tom' as name FROM dual 
2

Oracleが句から必要がありますクエリのこれらの種類のために、Oracleは、1列1行の、dualと呼ばれるシステム・テーブルを提供します。その場合は、DUAL表を使用する必要があります。それはあなたが何かを選択している場合、あなたはテーブルからそれを選択しなければならないことを強制することに

select 'Tom' as name from dual; 
2

Oracleは(私の知る限り)他のRMDBSsの中では珍しいです。

この目的のために、DUAL tableがあります。これは、PL/SQLプロシージャを記述するのではなく、SQL内の定数、関数などを選択できる特別な1行1列の表です。

10gからオプテ​​ィマイザが他のテーブルと異なることを認識し、実行パスを生成するときにその情報を利用して、 "通常の" 1列、1行の表。

+2

ここでのOracleの動作は、実際にはANSI SQLに準拠しています。 SQL標準によれば、FROM句が必要です。 – jarlh

+0

@jarlh私はそれについて完全には分かっていません。私はある時点でそれらを読んでいると思うし、定数を選択するときにFROM句が必要ないという事実を思いついた。しかし、私はそれが真実であるかどうかを確認するために私が使用できるスタンダードのコピーを見つけることができません! – Boneist

+1

ここでは、ISO/ANSI SQL構文の準拠性を確認できます。http://developer.mimer.com/validator/parser200x/index.tml – jarlh

関連する問題