小弟想求一条触发器
当进入每月的1日0时,数据库自动求出该月天数(闰年也要考虑进去),并将每天的日期+星期几写入该库指定表(WORKINFO)的指定字段(DAY)中比如这个月是7月,Oracle会自动计算出这个月31天,并写入WORKINFO表DAY字段31条记录

解决方案 »

  1.   

    晕死了,直接写个SQL就可以求出日期+星期几了。楼主做数据仓库的?
      

  2.   

    当进入每月的1日0时 执行 这是定时执行不是触发器! 的用JOB实现
    job可以执行一个过程 过程得到当前时间就是 月的第一天,用last_day(当前日期)得到本月最后一天 ,在用for 第一天。。最后一天 ,插入出具库WORKINFO表DAY字段
      

  3.   

    -- FYI:SQL> SELECT SYSDATE FROM DUAL;SYSDATE
    ----------------------------------------
    2009-7-14 11:49:48Executed in 0.016 secondsSQL> SELECT TO_CHAR(SYSDATE,'D')-1 XINGQI FROM DUAL;    XINGQI
    ----------
             2Executed in 0 secondsSQL> SELECT TRUNC(SYSDATE, 'MM') + ROWNUM - 1 ALL_DAY,
      2         '星期' ||
      3         DECODE((TO_CHAR(TRUNC(SYSDATE, 'MM') + ROWNUM - 1, 'D') - 1),
      4                0,
      5                7,
      6                (TO_CHAR(TRUNC(SYSDATE, 'MM') + ROWNUM - 1, 'D') - 1)) XINGQI
      7    FROM DUAL
      8  CONNECT BY ROWNUM <=
      9             TO_NUMBER(TO_CHAR(TRUNC(ADD_MONTHS(SYSDATE, 1), 'MM') - 1, 'DD')) - 1;ALL_DAY     XINGQI
    ----------- --------------------------------------------
    2009-7-1    星期3
    2009-7-2    星期4
    2009-7-3    星期5
    2009-7-4    星期6
    2009-7-5    星期7
    2009-7-6    星期1
    2009-7-7    星期2
    2009-7-8    星期3
    2009-7-9    星期4
    2009-7-10   星期5
    2009-7-11   星期6
    2009-7-12   星期7
    2009-7-13   星期1
    2009-7-14   星期2
    2009-7-15   星期3
    2009-7-16   星期4
    2009-7-17   星期5
    2009-7-18   星期6
    2009-7-19   星期7
    2009-7-20   星期1ALL_DAY     XINGQI
    ----------- --------------------------------------------
    2009-7-21   星期2
    2009-7-22   星期3
    2009-7-23   星期4
    2009-7-24   星期5
    2009-7-25   星期6
    2009-7-26   星期7
    2009-7-27   星期1
    2009-7-28   星期2
    2009-7-29   星期3
    2009-7-30   星期4
    2009-7-31   星期531 rows selectedExecuted in 0.265 seconds
      

  4.   

    使用job调用sp
    并使用last_day和TO_CHAR(DATE,FORMAT) 取得相关的日期维度
    TO_CHAR(DATE,FORMAT) 参见:http://blog.csdn.net/suncrafted/archive/2009/06/16/4273528.aspx
      

  5.   

    oracle函数last_dayq求最后一天的日期,可以用触发器也可以用Job实现,
      

  6.   


    同意用job,比用trigger要好一些。