如何让ORACLE每月自动更新一个表的数据?
现在每月手动更改的SQL语句如下:delete from fdxs_month;
commit;
/insert into fdxs_month (goodsid,goodsqty)
select a.goodsid,round(sum(a.goodsqty),0) goodsqty
from resa_sa_dtl a,resa_sa_doc b
where a.rsaid = b.rsaid
and b.useday between to_date ('20100201','yyyymmdd')
and to_date ('20100228','yyyymmdd')
group by a.goodsid;commit;
/
现在每月手动更改的SQL语句如下:delete from fdxs_month;
commit;
/insert into fdxs_month (goodsid,goodsqty)
select a.goodsid,round(sum(a.goodsqty),0) goodsqty
from resa_sa_dtl a,resa_sa_doc b
where a.rsaid = b.rsaid
and b.useday between to_date ('20100201','yyyymmdd')
and to_date ('20100228','yyyymmdd')
group by a.goodsid;commit;
/
解决方案 »
- ORACLE 数据迁移
- 语句查询-怎样获取SQL-SERVER数据库中的所有函数?
- 新手提问,关于oracle的trigger
- 怎样在command窗口中运行oracle9i SQL语句
- ”错误997:重叠I/O操作在进行中“ 谁能帮我解释怎么回事啊!!《在线等》
- orcale中如何判断一张数据表已经存在
- import (不支持要求的字符集转换(从类型850至852)
- 定义字段类型的检索性能那个更好!
- 无法启动 oracle9i TNSListener ??
- 一个SQL语句的问题
- 从oracle中导出数据时,数据量很大,到几千万条记录,请问高手们,有没有什么工具可以把数据导成文本啊??
- 【求助】Oracle 数据库中 blob字段问题
另:delete from fdxs_month;
commit;
/改为直接truncate,降低高水位,以防表越滚越大,影响性能。2 用物化视图,定时刷新。
可以在JOB调用的存储过程中判断是否是当月指定日期
如果是则执行数据处理
如每月1日:
if to_char(sysdate,'dd')='01' then
insert into ....
end if;
然后设置一个每天调用一次的JOB
begin
sys.dbms_job.submit(job => :job,
what => '更新数据的存储过程名',
next_date => sysdate,
interval => 'TRUNC(LAST_DAY(SYSDATE))+1+1/24');
commit;
end;
/