Oracle中的DUAL數據表是一個特殊的單行單列虛擬表
結構:1行1列
SELECT * FROM DUAL;
輸出結果:
列名默認DUMMY,值為'X'
常見使用DUAL數據表的場景:
1.系統函數調用測試
當需要測試Oracle函數但不需要真實表數據時,我們可以考慮使用DUAL數據表
SELECT SYS_GUID() FROM DUAL; -- 生成GUIDSELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD') FROM DUAL; -- 生成系統當前日期(YYYY-MM-DD的形式進行呈現)SELECT CONCAT('010-','123456789') FROM DUAL; -- 010-123456789SELECT SYS_CONTEXT('USERENV','TERMINAL') FROM DUAL; -- 獲得主機名SELECT SYS_CONTEXT('USERENV','LANGUAGE') FROM DUAL; -- 獲得當前localeSELECT dbms_random.random FROM DUAL; -- 獲得一個隨機數
2.計算表達式測試
SELECT 1+1 FROM DUAL; -- 輸出 2
SELECT 'Hello' || ' Oracle' FROM DUAL; -- 輸出 Hello Oracle
3.系統參數測試
SELECT USER FROM DUAL; -- 返回當前登錄用戶
SELECT SYSDATE FROM DUAL; -- 返回系統當前日期
4.類型轉換測試
SELECT TO_NUMBER('123.45') FROM DUAL;
5.布爾邏輯驗證
SELECT CASE WHEN 1=1 THEN 'TRUE' ELSE 'FALSE' END FROM DUAL;
輸出結果: