select account_temp,
nvl(get_last_qc(company_,'YE'), 0),
nvl(get_last_qc(company_,'SL' ),0),
0,
0,
0,
0 ,
sfromyear_,
frommonth_,
tomonth_,
sysdate_
from dual;我看到一段程序,我只想知道DUAL在这的作用
nvl(get_last_qc(company_,'YE'), 0),
nvl(get_last_qc(company_,'SL' ),0),
0,
0,
0,
0 ,
sfromyear_,
frommonth_,
tomonth_,
sysdate_
from dual;我看到一段程序,我只想知道DUAL在这的作用
你可以在网上查下是干什么用的 ,
很多
你若是用过MSSQL的话、就相当于SELECT SYSDATE;只不过ORACLE 不允许这样用。
DUAL表只有一行和一列,因为orcale的许多函数既处理列又处理文本量,利用DUAL能理解某些只处理文本量的函数。使用方法:
--查看当前连接用户
SQL> select user from dual;
USER
------------------------------
SYSTEM
--查看当前日期、时间
SQL> select sysdate from dual;
SYSDATE
----------
18-4月 -03
SQL> select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;
TO_CHAR(SYSDATE,'YY
-------------------
2003-04-18 22:37:56
--当作计算器用
SQL> select 1+2 from dual;
1+2
----------
3
--查看序列值
SQL> create sequence aaa increment by 1 start with 1;
SQL> select aaa.nextval from dual;
NEXTVAL
----------
1
SQL> select aaa.currval from dual;
CURRVAL
----------
1
上面这些select语句不关心表中有哪些列,而只用一行数据就足以说明问题了。实际应用中DUAL经常用于日期的计算及检验。
楼主给出的sql是无法执行的,应该是某段sql的截取吧,因为正如前面所说,dual只有一行一列。