ITPub博客

首页 > 数据库 > Oracle > 批量提交事例

批量提交事例

原创 Oracle 作者:shawnloong 时间:2016-08-26 15:21:11 0 删除 编辑
-- Create sequence
create sequence P_STOCK_MONTH_SEQ
minvalue 1
maxvalue 99999999999
start with 37
increment by 1
cache 20;

-- Create table
create table P_STOCK_MONTH
(
  tid            INTEGER not null,
  id             NUMBER not null,
  type           NUMBER,
  cate_id        NUMBER,
  goods_id       NUMBER,
  amount         NUMBER,
  unit           NUMBER,
  price_base     NUMBER,
  total          NUMBER,
  amount_deliver NUMBER,
  amount_sell    NUMBER,
  amount_lock    NUMBER,
  house_id       NUMBER,
  house_no       VARCHAR2(100),
  status         NUMBER,
  delete_flag    NUMBER,
  remark         VARCHAR2(1000),
  industry_id    NUMBER,
  amount_loss    NUMBER,
  stock_month    VARCHAR2(8)
)
tablespace JXC
  pctfree 10
  initrans 1
  maxtrans 255
  storage
  (
    initial 64K
    next 1M
    minextents 1
    maxextents unlimited
  );
-- Create/Recreate primary, unique and foreign key constraints
alter table P_STOCK_MONTH
  add constraint PK_P_STOCK_MONTH primary key (TID)
  using index
  tablespace JXC
  pctfree 10
  initrans 2
  maxtrans 255
  storage
  (
    initial 64K
    next 1M
    minextents 1
    maxextents unlimited
  );

--创建同步数据存储过程
create or replace procedure proc_sync_stock as
/*
Date:2015-11-06
Author:huangxianglong
Description:每个月底23:59:59同步数据到p_stock_month中
Version:1.0
*/
begin
DECLARE  CURSOR cur IS
    SELECT p_stock_month_seq.nextval,
           m.*,
           to_char(sysdate, 'yyyy-mm')
      FROM p_stock m;
  TYPE rec IS TABLE OF p_stock_month%ROWTYPE;
  recs rec;
BEGIN
  OPEN cur;
  WHILE (TRUE) LOOP
    FETCH cur BULK COLLECT
      INTO recs LIMIT 100;
    FORALL i IN 1 .. recs.COUNT
      INSERT INTO p_stock_month VALUES recs (i);
    COMMIT;
    EXIT WHEN cur%NOTFOUND;
  END LOOP;
  CLOSE cur;
END;
end proc_sync_stock;


--创建JOB
begin
  sys.dbms_scheduler.create_job(job_name            => 'JXC.JOB_PROC_SYNC_STOCK',
                                job_type            => 'STORED_PROCEDURE',
                                job_action          => 'PROC_SYNC_STOCK',
                                start_date          => to_date('30-11-2015 23:59:59', 'dd-mm-yyyy hh24:mi:ss'),
                                repeat_interval     => 'Freq=Monthly;Interval=1;ByMonth=Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec',
                                end_date            => to_date(null),
                                job_class           => 'DEFAULT_JOB_CLASS',
                                enabled             => true,
                                auto_drop           => false,
                                comments            => '');
end;
/

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/24486203/viewspace-2124077/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2011-08-29

  • 博文量
    110
  • 访问量
    292630