oracle資料庫中的sys.dual
1、檢視當前使用者,可以在SQL Plus或者PL/SQL中執行語句select User from dual;
2、用來呼叫系統函式
select to_char(sysdate,’yyyy-mm-dd hh24:mi:ss’) from dual;--獲得當前系統時間
select SYS_CONTEXT(’USERENV’,’TERMINAL’) from dual;--獲得主機名
select SYS_CONTEXT(’USERENV’,’language’) from dual;--獲得當前 locale
select dbms_random.random from dual;--獲得一個隨機數
3、得到序列的下一個值或當前值,用下面語句
select your_sequence.nextval from dual; --獲得序列your_sequence的下一個值
select your_sequence.currval from dual; --獲得序列your_sequence的當前值
4、可以用做計算器select 7*9 from dual;
oracle系列中dual表是一個“神祕”的表,很多人對該表進行了測試,該表只有一行一列,其實該表和系統中的其他表一樣,一樣可以執行插入、更新、刪除操作,還可以執行drop操作。但是不要去執行drop表的操作,否則系統不能使用,資料庫起不了,但是你還沒絕望,下面的步驟可以幫你恢復該表。可以用Sys使用者登入。
SQL>create pfile='d:pfile.bak' from spfile
SQL>shutdown immediate
在d:pfile.bak檔案中最後加入一條:
重新啟動資料庫:
SQL>startup pfile='d:pfile.bak';
SQL>create table "sys"." dual"
[an error occurred while processing this directive]