日期:2014-05-17  浏览次数:20859 次

求个存储过程~大家救命啊~
求个存储过程~大家帮帮忙~ 

要求这个存储过程能 

1 自动创建一张名字为当天日期的已知格式的表 

2 同时向表中插入若干数据,数据是从其他若干张表中联合查询得来的  

另外 此存储过程要每月执行一次 

如何操作?是不是要用到job,求详细步骤。

本人原来接触oracle不多,这次临时受命,赶鸭子上架,还希望大家帮帮忙~ 

拜谢了,小弟分不多,42分全部送上!

------解决方案--------------------
SQL code

1. 创建表
  A create table 'smart_deal_'||to_char(sysdate,'yyyymmdd') as 
  select * from yourtbl where 1=1;
  B  create table 'smart_deal_'||to_char(sysdate,'yyyymmdd') as select * from yourtable where 1<>1
     insert into 'smart_deal_'||to_char(sysdate,'yyyymmdd') select * from yourlianheTblName where 1=1 ;

2. 创建JOB
sys.dbms_job.submit(job => :job,
                      what => 'youprocedurename;',
                      next_date => to_date('15-02-2012 08:32:00', 'dd-mm-yyyy hh24:mi:ss'),
                      interval => 'sysdate+30');
commit;

------解决方案--------------------
--存储过程没写全
CREATE OR REPLACE PROCEDURE P_ZC1
AS
BEGIN
create table XX as select * from 已知表结构表名 where 1<>1;
COMMIT;
insert into XX values(取来的数据);
COMMIT;
END P_ZC1;
--- job 

begin
sys.dbms_job.submit(job => :job,
what => 'PP_ZC1',
interval => 'trunc(sysdate)+30');
commit;
end;