一文掌握Oracle中的Dual系統(tǒng)表
這幾天一直在研究Oracle,常常會(huì)用到Dual這個(gè)系統(tǒng)表,Dual表到底是一個(gè)什么表?帶著疑問baidu了一下:
Dual表是Oracle提供的最小的工作表(其實(shí)是一種虛擬表),是sys用戶下的一張內(nèi)部表,只有一行一列(一列:DUMMY,一列:DUMMY,其數(shù)據(jù)類型為:VARCHAR2(1))。所有用戶都可以使用Dual名稱訪問,無論什么時(shí)候這個(gè)表總是存在。不論進(jìn)行何種操作(不要?jiǎng)h除記錄),它都只有一條記錄——'X'。
select * from dual;
我們來查一下它的表結(jié)構(gòu),PL/SQL Developer【命令窗口】輸入desc dual;
或者sys用戶下【SQL窗口】執(zhí)行以下語句
SELECT DBMS_METADATA.GET_DDL('TABLE','DUAL') FROM DUAL;
那么Dual在實(shí)際應(yīng)用過程中可以做些什么呢?
- Dual表主要用來選擇系統(tǒng)變量或求一個(gè)表達(dá)式的值,最常見的一個(gè)簡(jiǎn)單例子,執(zhí)行一個(gè)查看當(dāng)前日期的語句,這條語句放在任何一個(gè)Oracle數(shù)據(jù)庫當(dāng)中都不會(huì)報(bào)錯(cuò),所以一般做一些特定查詢的時(shí)候用這個(gè)表是最穩(wěn)妥的。
select sysdate from dual; --或日期轉(zhuǎn)換獲得當(dāng)前系統(tǒng)時(shí)間,‘分鐘' 要用mi;hh24表示24小時(shí)制,hh表示12小時(shí)制。 select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;
- 當(dāng)計(jì)算器使用
select 1024*1024 from dual;
- 查詢當(dāng)前連接用戶
select user from dual;
- 查看序列值
--創(chuàng)建序列aaa 以1開始,每次加1 create sequence aaa increment by 1 start with 1; --獲得序列aaa 的下一個(gè)序列值,每次查詢加1 select aaa.nextval from dual; --獲得序列aaa 的當(dāng)前序列值 select aaa.currval from dual;
- 獲得一個(gè)隨機(jī)數(shù)
select DBMS_RANDOM.random from dual;
- Dual到底是什么object?
select owner, object_name , object_type from dba_objects where object_name like '%DUAL%';
經(jīng)過查詢輸出的結(jié)果可以看到Dual是屬于sys的一個(gè)表,然后以PUBLIC SYNONYM的方式供其他用戶使用。
相關(guān)文章
oracle中如何獲得數(shù)據(jù)庫的DBID信息
在進(jìn)行數(shù)據(jù)庫恢復(fù)的過程中,很多時(shí)候我們需要知道Oracle數(shù)據(jù)庫的DBID,通常有以下幾種方法可以獲得數(shù)據(jù)庫的DBID2013-09-09巧妙解決Oracle NClob讀寫問題(經(jīng)驗(yàn)分享)
下面小編就為大家?guī)硪黄擅罱鉀QOracle NClob讀寫問題(經(jīng)驗(yàn)分享)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-10-10Oracle 8x監(jiān)控sysdba角色用戶登陸情況
Oracle 8x監(jiān)控sysdba角色用戶登陸情況...2007-03-03Oracle數(shù)據(jù)IMP和EXP命令用法詳解
這篇文章主要給大家介紹了關(guān)于Oracle數(shù)據(jù)IMP和EXP命令用法詳解的相關(guān)資料,我們可以使用Oracle自帶的exp、imp命令來進(jìn)行數(shù)據(jù)庫備份,imp和exp稱之為導(dǎo)入導(dǎo)出,這種方式也能快速的導(dǎo)入導(dǎo)出table或數(shù)據(jù)庫,需要的朋友可以參考下2023-11-11PLSQL安裝、漢化和激活的方法步驟實(shí)現(xiàn)
這篇文章主要介紹了PLSQL安裝、漢化和激活的方法步驟實(shí)現(xiàn),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09實(shí)例講解臨時(shí)處理去重 80w 數(shù)據(jù)時(shí)夯死現(xiàn)象
這篇文章主要介紹了臨時(shí)處理去重 80w 數(shù)據(jù)時(shí)夯死現(xiàn)象,需要的朋友可以參考下2015-09-09Oracle使用MyBatis中RowBounds實(shí)現(xiàn)分頁查詢功能
這篇文章主要介紹了Oracle使用MyBatis中RowBounds實(shí)現(xiàn)分頁查詢 ,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-07-07oracle查詢截至到當(dāng)前日期月份所在年份的所有月份
這篇文章主要介紹了oracle查詢截至到當(dāng)前日期月份所在年份的所有月份,本文通過代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值 ,需要的朋友可以參考下2019-07-07