oracle创建定时任务,每天更新业务状态

先创建表

1,create table UUMS_USER
(
  id            VARCHAR2(32) not null,
  login_name    NVARCHAR2(200) not null,
  real_name     NVARCHAR2(200) not null,
  password      VARCHAR2(200) not null,
  salt          VARCHAR2(100) not null,
  status        NUMBER(1) not null,
  ctime         DATE,
  utime         DATE,
  orders        NUMBER(5) not null,
  last_login    DATE,
  psdupdatetime DATE default SYSDATE,
  pid           VARCHAR2(32),
  pids          VARCHAR2(2000),
  start_date    DATE,
  end_date      DATE
)
;
comment on table UUMS_USER
  is '用户';
comment on column UUMS_USER.id
  is 'id';
comment on column UUMS_USER.login_name
  is '登录名';
comment on column UUMS_USER.real_name
  is '姓名';
comment on column UUMS_USER.password
  is '密码';
comment on column UUMS_USER.salt
  is '密码盐';
comment on column UUMS_USER.status
  is '状态  ,0 是无效,1是有效';
comment on column UUMS_USER.ctime
  is '创建时间';
comment on column UUMS_USER.utime
  is '更新时间';
comment on column UUMS_USER.orders
  is '排序';
comment on column UUMS_USER.last_login
  is '最后登录时间';
comment on column UUMS_USER.psdupdatetime
  is '密码更新时间';
comment on column UUMS_USER.pid
  is '父用户id';
comment on column UUMS_USER.pids
  is '所有父用户id';
comment on column UUMS_USER.start_date
  is '起止时间';
comment on column UUMS_USER.end_date
  is '结束时间';
alter table UUMS_USER
  add constraint PK_UUMS_USER primary key (ID);
alter table UUMS_USER
  add constraint U_LOGIN_NAME unique (LOGIN_NAME);

2,创建存储过程

create or replace procedure pro_user_status is
p_status number(1);
begin
  p_status:=0; 
   update uums_user t set t.status=p_status where t.end_date<sysdate;
   commit;
end pro_user_status;

3,创建定时任务

declare job_user_status  number;
begin
  dbms_job.submit(job=>job_user_status,what =>'pro_user_status;',next_date =>sysdate ,interval =>'sysdate+1'            -- 如果时间是设置分钟(‘sysdate+1/24/60’)
                  );
end;

这里面有个坑,如果直接复制过去,不能执行,肯定是符合或者空格问题导致,照着敲一遍

存储过程是否创建成功,执行以下就知道

call  pro_user_status ();

-- 查询定时任务id
SELECT * FROM USER_JOBS;

-- 执行定时任务
  begin 
      dbms_job.run(24); 
      commit;
      end; 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值