DUALテーブルは1列のみのテーブルだ。
OracleではFROM句を省略できないため参照するテーブルがない場合 FROM DUAL
のようにDUALテーブルを指定する。
このDUALテーブルの取り扱いはRDBMSによって異なり、定義されていないものもある。
そこでDUALテーブルの扱いを各種RDBMS毎にまとめた。
DB | FROM句の省略 | DUALテーブル |
---|---|---|
DB2 | できない | あるがSYSIBM配下に存在する。DUALだけで名前解決したい場合Oracle互換モードにする必要がある。 |
MySQL | できる | ある |
Oracle | できない | ある |
PostgreSQL | できる | ない |
SQL Server | できる | ない |
DB2のOracle互換モードについてはドキュメントに記載されている。 https://www.ibm.com/docs/ja/db2/10.1.0?topic=features-db2-compatibility-vector-registry-variable