DUAL[Oracle中的一張內部表]

DUAL[Oracle中的一張內部表]
更多義項 ▼ 收起列表 ▲

Oracle提供的最小的工作表,只有一行一列,具有某些特殊功用。

基本信息

表結構

Name Type
DUMMY Varchar(1)

特性

Oracle提供的最小的表,不論進行何種操作(不要刪除記錄),它都只有一條記錄——'X'。

例如:執行select * from dual,裡面只有一條記錄;執行insert into dual values('Y')後,再次查詢dual表,仍然顯示一條記錄。

是sys用戶下的一張內部表,所有用戶都可以使用DUAL名稱訪問,無論什麼時候這個表總是存在。

例如:執行一個查看當前日期的語句 select sysdate from dual,這條語句在放在放在任何一個oracle資料庫當中都不會報錯,所以一般做一些特定查詢的時候用這個表是最穩妥的。

1.

Oracle提供的最小的表,不論進行何種操作(不要刪除記錄),它都只有一條記錄——'X'。

例如:執行select * from dual,裡面只有一條記錄;執行insert into dual values('Y')後,再次查詢dual表,仍然顯示一條記錄。

2.

是sys用戶下的一張內部表,所有用戶都可以使用DUAL名稱訪問,無論什麼時候這個表總是存在。

例如:執行一個查看當前日期的語句 select sysdate from dual,這條語句在放在放在任何一個oracle資料庫當中都不會報錯,所以一般做一些特定查詢的時候用這個表是最穩妥的。

用途

select計算常量表達式、偽列等值

oracle內部處理使它只返回一行數據,而使用其它表時可能返回多個數據行。

查看當前用戶

select user from dual;

select count(*) from dual;

用做計算器

select 7*9*10-10 from dual;

調用系統函式

獲得當前系統時間

select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;

獲得主機名

select sys_context('userenv','terminal') from dual;

獲得當前locale

select sys_context('userenv','language') from dual;

獲得一個隨機數

select DBMS_RANDOM.random from dual;

查看序列值

創建序列aaa 以1開始,每次加1

create sequence aaa increment by 1 start with 1;

獲得序列aaa 的下一個序列值

select aaa.nextval from dual;

獲得序列aaa 的當前序列值

select aaa.currval from dual;

1.

select計算常量表達式、偽列等值

oracle內部處理使它只返回一行數據,而使用其它表時可能返回多個數據行。

2.

查看當前用戶

select user from dual;

select count(*) from dual;

3.

用做計算器

select 7*9*10-10 from dual;

4.

調用系統函式

5.

獲得當前系統時間

select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;

6.

獲得主機名

select sys_context('userenv','terminal') from dual;

7.

獲得當前locale

select sys_context('userenv','language') from dual;

8.

獲得一個隨機數

select DBMS_RANDOM.random from dual;

9.

查看序列值

10.

創建序列aaa 以1開始,每次加1

create sequence aaa increment by 1 start with 1;

11.

獲得序列aaa 的下一個序列值

select aaa.nextval from dual;

12.

獲得序列aaa 的當前序列值

select aaa.currval from dual;

原理

dual倒底是什麼object?它有什麼特殊的行為嗎?

select owner, object_name , object_type from dba_objects where object_name like '%DUAL%';

原來dual是屬於sys schema的一個表,然後以PUBLIC SYNONYM的方式供其他用戶使用。

可以利用dual表和日期函式設定日期格式及運算,從而理解它們如何起作用。

相關詞條

相關搜尋

熱門詞條

聯絡我們