Oracle # 创建存储过程+Job 详细步骤

第一步:创建表

本例子中使用的语句为:


  CREATE TABLE "PES_IFS_TJBI"."BI_PS01_INPROJECT_NEW" 
   (	"PROBLEM_ADD_NUM" NUMBER, 
	"V1_ADD_NUM" NUMBER, 
	"REALTIME_NUM" NUMBER, 
	"STATION_NAME" VARCHAR2(200 BYTE), 
	"CARTYPE" VARCHAR2(20 BYTE), 
	"PRODUCT_DATE" VARCHAR2(20 BYTE)
   ) SEGMENT CREATION DEFERRED 
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
 NOCOMPRESS LOGGING
  TABLESPACE "USERS" ;

   COMMENT ON COLUMN "PES_IFS_TJBI"."BI_PS01_INPROJECT_NEW"."PROBLEM_ADD_NUM" IS '问题数和';
   COMMENT ON COLUMN "PES_IFS_TJBI"."BI_PS01_INPROJECT_NEW"."V1_ADD_NUM" IS 'V1问题数和';
   COMMENT ON COLUMN "PES_IFS_TJBI"."BI_PS01_INPROJECT_NEW"."REALTIME_NUM" IS '车辆数';
   COMMENT ON COLUMN "PES_IFS_TJBI"."BI_PS01_INPROJECT_NEW"."STATION_NAME" IS '工位';
   COMMENT ON COLUMN "PES_IFS_TJBI"."BI_PS01_INPROJECT_NEW"."CARTYPE" IS '车型';
   COMMENT ON COLUMN "PES_IFS_TJBI"."BI_PS01_INPROJECT_NEW"."PRODUCT_DATE" IS '生产日期';

 

第二步:创建存储过程

基本语句示例:

create or replace PROCEDURE 存储过程名称
IS
BEGIN  
--执行的语句代码编写位置
COMMIT;
exception
WHEN others THEN
  ROLLBACK;
END;

本示例代码为:

create or replace PROCEDURE PRO_Add_BI_PS01_INPROJECT_NEW
--同步BI_PS01_INPROJECT_HISTORY表中的数据根据特殊的规则至BI_PS01_INPROJECT_NEW表中
IS
BEGIN 

--将查询的数据结果新增至BI_PS01_INPROJECT_NEW表中 Start
insert into BI_PS01_INPROJECT_NEW(
PROBLEM_ADD_NUM,
V1_ADD_NUM,
REALTIME_NUM,
STATION_NAME,
CARTYPE,
PRODUCT_DATE
)
--根据规则查询数据 Start
select
sum(PROBLEM_NUM)as PROBLEM_ADD_NUM,
sum(V1_PROBLEM_NUM)as V1_ADD_NUM,
REALTIME_NUM,STATION_NAME,CARTYPE,PRODUCT_DATE
from 
BI_PS01_INPROJECT_HISTORY
group by 
STATION_NAME,REALTIME_NUM,PRODUCT_DATE,CARTYPE
ORDER BY PRODUCT_DATE desc,CARTYPE;
--根据规则查询数据 End

--将查询的数据结果新增至BI_PS01_INPROJECT_NEW表中 End

COMMIT;
exception
WHEN others THEN
  ROLLBACK;
END;

编写完成,点击执行——> 提交按钮。

刷新过程,显示新建立的存储过程: 

 

特殊说明,如何区分存储过程有没有建立成功

第三步:创建Job

--创建Job--禁用 Start
 declare jobno number;
 begin
 dbms_job.submit(jobno,'PRO_ADD_BI_PS01_INPROJECT_NEW;',to_date('2019-11-01 11:20:00', 'yyyy-mm-dd hh24:mi:ss'),'SYSDATE + 1/24');
 end;
 --创建Job--禁用 End(每小时运行一次)

--创建Job Start
declare jobno number;
begin
     dbms_job.submit(jobno,'PRO_ADD_BI_PS01_INPROJECT_NEW;',to_date('2019-11-02 13:20:00', 'yyyy-mm-dd hh24:mi:ss'),'sysdate+1/60');--每天86400秒钟,即一秒钟运行prc_name过程一次
    commit;
end;
 --创建Job End(
 
 --查询Job Start
 select job, what, next_date, next_sec, sysdate, failures, broken,interval
from user_jobs a;
 --查询Job End
 
 --查询Job汉化解释 Start
 select job, what as 存储过程名称, next_date as 下一次执行日期, next_sec as 下一次执行时间, sysdate as 当前日期, failures as 失败次数, broken,interval
from user_jobs a;
 --查询Job汉化解释 End
 
 --删除Job Start
begin
 dbms_job.remove(63);
end;
--删除Job End
 
--修改Job Start
begin
  dbms_job.change(63 ,'PRO_ADD_BI_PS01_INPROJECT_NEW;', sysdate,'sysdate+2/(24*60)' );
  commit;
--修改Job End

目前已经完成存储过程以及job的建立,请耐心等到验证结果吧!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值