定时任务,PLS-00103

需要定期根据一张表更新另一张表,想到可以定期删除、重新创建需要更新的表。下面是定期创建的示例。

首先执行下面的语句,创建一个自定义存储过程,这个存储过程的名字叫“C_CQZS”,定期创建表名叫“CQZS”。

CREATE OR REPLACE PROCEDURE C_CQZS AS
BEGIN
     EXECUTE IMMEDIATE 'CREATE  TABLE CQZS  AS SELECT *FROM CQZS1';    
END;

需要注意的是,建表、删表是用EXECUTE IMMEDIATE 加上建表、删表语句,其他的语句又有所区别,如下面是定期向表里插入记录的一个示例。

再执行下面的语句,创建定时任务JOB

DECLARE
    jobno NUMBER;
BEGIN
    dbms_job.submit(
            jobno, --定时器ID,系统自动获得
            'C_CQZS;', --执行的任务名
            SYSDATE, --next_date,定时器开始执行的时间,这样写表示立即执行
            'TRUNC(sysdate,''mi'') + 4/ (24*60)' --interval,设置定时器执行的频率,这样写每隔4分钟执行一次
        );
    COMMIT;
END;

PLS-00103

在测试的过程中报过PLS-00103,后面发现是由于建表语句本身在一个' '之内,所以建表语句内部的单引号需要改为双引号。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值