[Oracle] DUAL数据表
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;
输出结果: