Ognacの雑感

木漏れ日々

目次

Blog 利用状況

書庫

ギャラリ

DUALはおまじない?

SQL文で 直接値を計算する時、 SQL Severだと  「 select 20+3  」と書きます。
ORACL だと 「 select 20 + 3 from dual」 と書きます。
  教科書にも載っているし、常識以前の問題です。

私は、SQL_Server とORACLEの差を極力なくして、可能な限り、共用できるように記述してます。
そのために、 SQL SERVER上に Scott/Tigerのユーザーを作り、 「DUAL」Table  : char(1) 要素は 'X' の一件というテーブルをつくって、Oraclとの差を縮めてます。
 当然、sql server上で 「select 2+ 3 from dual 」 が実行できます。

  それを見た2、3年生から予想外の突っ込みが入りました。「SQL Server でも、直接実行コマンド(dual文のことらしい)が使えるんですか!」と。
 よく聞いてみると、ORACLで直接計算するときは "select 式 from DUAL" MS_SQLでは "select 式" と書くのが常道で、それが"おまじない"だと教わったそうです。
 MS_SQLに From句が不要というのが変だと思うですが、仕様なので仕方がない。
SQL文はTableに作用するので「直接式でTable要素を使わずとも触媒として記述するものだ」と理解すれば、おまじない感はなくなるはず。なぜおまじない感のまま放置するのだろう。
 Oracle上では DUALは SYS領域にDUALという名称のTABLEがあり要素は"X" が一件入ってます。 この辺りのことを書いている教科書ってないのかな。おまじないで誤魔化す解説書も問題ですが、頭から覚えるのでなく、疑問を持ち、探究して欲しいですね。

投稿日時 : 2008年5月4日 1:10

Feedback

# re: DUALはおまじない? 2008/05/04 2:17 中博俊

>そのために、 SQL SERVER上に Scott/Tigerのユーザーを作り、 「DUAL」Table : char(1) 要素は 'X' の一件というテーブルをつくって、Oraclとの差を縮めてます。

これ良くない。パフォーマンスを犠牲にする必要はないと思います。

# re: DUALはおまじない? 2008/05/04 11:41 やじゅ

>DUALは SYS領域にDUALという名称のTABLEがあり
恥ずかしながら知りませんでした。これで覚えた。

# re: DUALはおまじない? 2008/05/05 0:45 Ognac

>これ良くない。パフォーマンスを犠牲にする必要はないと思います
やっぱし....www(^^!

# Oracleと合わせるためにDual表を作るなんてしては絶対にいけない 2008/05/06 1:04 中の技術日誌ブログ

Oracleと合わせるためにDual表を作るなんてしては絶対にいけない

# DUAL表って使いますか? 2008/05/06 9:00 DHJJ [Hatsune's Journal Japan] blog

DUAL表って使いますか?

# re: DUALはおまじない? 2010/04/21 12:47 asdf

亀すぎるが、酷いことするな >Dual表を作る

# re: DUALはおまじない? 2010/04/21 23:04 ognac

>酷いことするな
はぁい。
今、思えば、血迷ってましたね。

タイトル
名前
Url
コメント