久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

您的位置:首頁技術(shù)文章
文章詳情頁

一文掌握Oracle中的Dual系統(tǒng)表

瀏覽:166日期:2023-03-12 15:25:13

這幾天一直在研究Oracle,常常會用到Dual這個系統(tǒng)表,Dual表到底是一個什么表?帶著疑問baidu了一下:

Dual表是Oracle提供的最小的工作表(其實是一種虛擬表),是sys用戶下的一張內(nèi)部表,只有一行一列(一列:DUMMY,一列:DUMMY,其數(shù)據(jù)類型為:VARCHAR2(1))。所有用戶都可以使用Dual名稱訪問,無論什么時候這個表總是存在。不論進行何種操作(不要刪除記錄),它都只有一條記錄——'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在實際應(yīng)用過程中可以做些什么呢?

  • Dual表主要用來選擇系統(tǒng)變量或求一個表達式的值,最常見的一個簡單例子,執(zhí)行一個查看當(dāng)前日期的語句,這條語句放在任何一個Oracle數(shù)據(jù)庫當(dāng)中都不會報錯,所以一般做一些特定查詢的時候用這個表是最穩(wěn)妥的。
select sysdate from dual;--或日期轉(zhuǎn)換獲得當(dāng)前系統(tǒng)時間,‘分鐘" 要用mi;hh24表示24小時制,hh表示12小時制。select to_char(sysdate,"yyyy-mm-dd hh24:mi:ss") from dual;

  • 當(dāng)計算器使用
select 1024*1024 from dual;

  • 查詢當(dāng)前連接用戶
select user from dual;

  • 查看序列值
--創(chuàng)建序列aaa 以1開始,每次加1create sequence aaa increment by 1 start with 1; --獲得序列aaa 的下一個序列值,每次查詢加1select aaa.nextval from dual; --獲得序列aaa 的當(dāng)前序列值select aaa.currval from dual;

  • 獲得一個隨機數(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的一個表,然后以PUBLIC SYNONYM的方式供其他用戶使用。

標(biāo)簽: Oracle
主站蜘蛛池模板: 大名县| 康平县| 陈巴尔虎旗| 五寨县| 白河县| 贵州省| 垫江县| 久治县| 正宁县| 荣昌县| 鄂托克前旗| 康马县| 青海省| 滨州市| 游戏| 乐陵市| 绥棱县| 台湾省| 吉林省| 确山县| 来凤县| 龙游县| 张家界市| 天祝| 白山市| 本溪| 新巴尔虎左旗| 十堰市| 儋州市| 泌阳县| 咸丰县| 宁南县| 广安市| 乐业县| 衡南县| 抚远县| 宝坻区| 北碚区| 闽侯县| 商洛市| 江山市|