小弟想求一条触发器
当进入每月的1日0时,数据库自动求出该月天数(闰年也要考虑进去),并将每天的日期+星期几写入该库指定表(WORKINFO)的指定字段(DAY)中比如这个月是7月,Oracle会自动计算出这个月31天,并写入WORKINFO表DAY字段31条记录
当进入每月的1日0时,数据库自动求出该月天数(闰年也要考虑进去),并将每天的日期+星期几写入该库指定表(WORKINFO)的指定字段(DAY)中比如这个月是7月,Oracle会自动计算出这个月31天,并写入WORKINFO表DAY字段31条记录
job可以执行一个过程 过程得到当前时间就是 月的第一天,用last_day(当前日期)得到本月最后一天 ,在用for 第一天。。最后一天 ,插入出具库WORKINFO表DAY字段
----------------------------------------
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
并使用last_day和TO_CHAR(DATE,FORMAT) 取得相关的日期维度
TO_CHAR(DATE,FORMAT) 参见:http://blog.csdn.net/suncrafted/archive/2009/06/16/4273528.aspx
同意用job,比用trigger要好一些。