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在这的作用

解决方案 »

  1.   

    这个SQL是错误的
    你可以在网上查下是干什么用的 ,
    很多
      

  2.   

    上面的select应该是程序里面的一部分吧?
      

  3.   

    上面的应该是程序的一部分,dual是个中间表!一般是用来获得系统参数,也可以用来存放变量之类!
      

  4.   

    select * from dualdual就是ORACLE中的一个表而已、你执行下SELECT就知道了、只不过这个表中就只有一个字段、一条记录而已
    你若是用过MSSQL的话、就相当于SELECT SYSDATE;只不过ORACLE 不允许这样用。
      

  5.   

    DUAL是 Oracle中的一个实际存在的表,任何用户均可读取,常用在没有目标表的Select语句块中。
    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只有一行一列。
      

  6.   

    满足select from 语法格式,而添进去的空表,常用于显示一些数值,字符串和日期的显示
      

  7.   

    dual 相当于是oracle中一张系统表,把和系统相关的信息都存在了里面,包括各类函数。可以用来查询你所需要的字段的格式,比如日期。