DUAL table has only one column called DUMMY as Varchar2(1) data type and value as X.
Examples
1) select 1 from DUAL;
returns 1
2) select 1+2 from DUAL;
returns 3
3) select sysdate from DUAL;
returns system date of oracle database.
4) select `sql` from DUAL;
returns`sql`
5) select user from DUAL;
returns oracle user logged in.
6) select
(select empno from emp where empno = 10)
from DUAL;
returns 10
DUAL table can be used to test the SQL functions ( Both in-built and user defined functions)
7) select func_salary(10) from DUAL;
where func_salary is a user defined function returns a value when argument is 10.
8) select LOWER(`ORAclE`) from DUAL;
returns`oracle` where LOWER is a in-built SQL function.
DUAL table can be used in SQL and PL/SQL.
good explanation thanks..