oracle 计划任务调用存储过程,日常记录-oracle建立定时计划,调用存储过程

我这边需要在存储过程定义两个变量,一个进行记录上次操作的值,另一个进行加恒值,使 update 操作的是一个区间的所有的数据。并且每次操作完毕,记录上次的操作值,下次定时计划调用的时候,在读取出来,然后相加恒值,继续update。

打开plsql,选择Procedures,进行新建。 CREATE OR REPLACE

procedure update_gps is

ROWNUM_BEGIN NUMBER(35);

ROWNUM_END NUMBER(35);

begin

SELECT NUMTEST INTO ROWNUM_BEGIN from TEST WHERE ROWNUM = 1;

ROWNUM_END := ROWNUM_BEGIN+10000;

dbms_output.put_line('ROWNUM_END = ' || ROWNUM_END);

UPDATE T_PLT_VEHICLE_LOCATION

SET LON = REGEXP_REPLACE ( REGEXP_REPLACE ( lon, '[^0-9]+', '' ), '(\d{3})(\d{1,6})?(.*)', '\1.\2' ),

LAT = REGEXP_REPLACE ( REGEXP_REPLACE ( lat, '[^0-9]+', '' ), '(\d{2})(\d{1,6})?(.*)', '\1.\2' )

WHERE

ROWNUM > ROWNUM_BEGIN and ROWNUM <= ROWNUM_END;

dbms_output.put_line('update 1 ');

commit;

UPDATE TEST set NUMTEST=ROWNUM_END WHERE ROWNUM = 1;

dbms_output.put_line('update 2 ');

commit;

end update_gps;

从上面的sql 可以看出,我这边定义了两个变量,分别是 ROWNUM_BEGIN 与 ROWNUM_END。不同的是,一个是sql赋值,一个是直接赋值。

进行编译-编译成功

进行debug 测试,测试成功

备注:这里我在测试的时候,本地会一直出现运行中状态,我后面使用的是debug 进行测试,测试成功。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值