1. dual 確實是一張表.是一張只有乙個字段,一行記錄的表.
2.習慣上,我們稱之為'偽表'.因為他不儲存主題資料.
3. 他的存在,是為了操作上的方便.因為select 都是要有特定物件的.
如:select * from mytable ;
select * from myview;
等等.但如果我們不需要從具體的表來取得表中資料,而是單純地為了得到一些我們想得到的資訊,並要通過select 完成時,就要借助乙個物件,這個物件,就是dual;
如我們要計算 999*999 的值,可以用:
select 999*999 from dual;
來實現;
要拼接乙個**資訊:
select concat('010-','88888888')||'轉23' 高幹競** from dual;
就變成了我們想要的格式輸出.
4.當然,我們不一定要dual ,也可以這樣做.例如:
create table mydual( dummy varchar2(1));
也可以實現和dual 同樣的效果:
select 999*999 from mydual;
不過,dual 我們都用習慣了,就無謂自己再搞一套了.
Oracle資料庫中的dual表
select user from dual select to char sysdate,yyyy mm dd hh24 mi ss from dual 獲得當前系統時間 select sys context userenv terminal from dual 獲得主機名 select sys c...
文章標題 Oracle資料庫中dual表使用
一.業務場景 業務流程需要進行寫入和更新的比較,所以有原表和歷史表。要求表中的id唯一性,以及兩張表的id關聯,另外後續可能資料庫會進行遷移 二.方案選擇 方案一 id設定為int型自增長。這種做法程式設計簡單,無需考慮id唯一性,由資料庫幫忙維護。但是在此業務場景下存在缺點 1.這裡存在兩張表關聯...
oracle資料庫 dual空表的靈活使用
今天遇到乙個一時比較冷的面試,說是當前資料庫的系統時間,寫一條sql語句出來 分析,以前查詢的時候,都是設計好的表,查詢出來插入的時間,這個很容易,查詢乙個欄位嘛,但是這裡又沒有給表的名字 怎麼查呢?其實oracle有乙個任何的使用者下都是存在乙個空表 名字是 dual 所以sql語句就很容易寫了 ...