OracleのDUAL表とは?

OracleのDUAL表について。

この記事の内容はコチラです

  • 「DUAL表」とは?
  • 「DUAL表」はどのように使う?

今回は、OracleのDUAL表について紹介します!

OracleのDUAL表とは?

Oracleには「DUAL」というテーブルがあります。この「DUAL」について解説します。

DUAL表とはダミーテーブルのこと

OracleのDUAL表というのは、ダミーのテーブルのことです。ダミーのテーブルがあると何かと便利なので用意されています。

DUAL表は、Oracleインストール時に自動的に作成されます。なので自分で作成しなくてもいつでも使えます。

ダミーとはいっても、実はDUAL表はSYSユーザーのスキーマにあります。テーブル自体に列・行ももっています。DUMMY列を持ち、X値を持つ行があります。DUMMY列の型はVARCHAR2(1)です。

<DUAL表>

DUMMY
X

ダミー表といっているのは、ダミー的に表を使うからです。

参照:DUAL表からの選択

DUALの使い方

何となくDUALの意味がわかったところで、DUALの使い方をいくつか挙げていきます。実際にどのように使うかがわかれば、DUAL表がスッキリすると思います。

例1. 関数だけを使う

--日付を取得する
SELECT SYSDATE FROM DUAL;
[結果]
22-01-01

Oracleで日付を取得する場合は、SYSDATE関数を使います。だけど、FROM句に何のテーブルを記述すればいいのかな?

この場合、特にテーブルなんて必要ないですよね?関数だけ使いたいだけですし。でも「FROM」は省略できないので、ダミー表として「DUAL」を使います。

このように関数だけ実行したいときにダミー表「DUAL」を使います。

例2. 動作確認で使う

--四捨五入する
SELECT ROUND(10.5) FROM DUAL; 
[結果] 
11

他には動作確認でも使えます。はじめて使う関数はどのような挙動をするかわかりません。なので使う前に動きをチェックしておきたい。そんなときに使います。

ここではROUND関数の動作確認をしました。ROUND関数は四捨五入する関数ですが、はじめて使う場合はちょっと不安です。「本当にROUNDで四捨五入きるかな?」そんなときにDUALが便利です。

sqlplusを起動して、DUAL表を使って関数がどのような結果になるかサクっと確認できます。

このようにDUAL表は関数の動作確認をするときに使えます。わりと便利なので使ってみて下さい。

OracleのDUAL表はダミーとして何かと便利なテーブルなのです。

以上、OracleのDUAL表について解説でした。

コメント

  1. 通りすがり より:

    SYSDATE でなく SYSATE になっています。

    SELECT SYSDATE from DUAL; 

    • Oracleマスター より:

      「D」が抜けておりましたので追加しました。
      ご指摘ありがとうございました!