我写了一个存储过程如下:
create or replace procedure PROC_SENT_MID_FEEVALUELOG is
cursor cur_tmp is
-----获取所有过期的记录
select g.f_fee_id,g.f_addvalue_number,g.f_fee_overtime from t_mid_sent_feevalue_log g
where g.f_fee_state ='0'
and g.f_fee_overtime < to_char(sysdate,'yyyyMMddhh24miss')
begin
for cur_row in cur_tmp loop
begin
exit when cur_tmp%notfound;
----更新赠送日志表记录更新为过期
update t_mid_sent_feevalue_log t set t.f_fee_state ='2' where t.f_fee_id = cur_row.f_fee_id
----把充值券明细表锁定状态5 更新为初始化0
update t_fee_addvalue_new_log a set a.state = '0' where a.state ='5'
and a.addvalue_number =cur_row.f_addvalue_number
commit;
end;
end loop;
exception when others then
begin
rollback;
end;
end PROC_SENT_MID_FEEVALUELOG;
现在我要怎么样把这个存储过程编译 部署起来。。请大神帮忙 只会写 不会运行了。。。
------解决思路----------------------
--添加定时任务,每晚12点定时执行
VARIABLE jobno number;↙
begin
DBMS_JOB.SUBMIT(:jobno,
'你的存储过程;',
TRUNC(SYSDATE),'trunc(sysdate)+1');
commit;
end;
------解决思路----------------------
用PL/DEV创建JOB,填写上时间,存储过程 就OK了
------解决思路----------------------
给你个具体的方法吧,在jobs上右击:
然后,填写过程,时间和间隔,其中过程要加上分号,如sp_test();:
------解决思路----------------------
在sql窗口,调用存储过程:
call sp_stu();使用call 关键字调用,存储过程名后要加括号;
begin
sp_stu;
end;
在命令窗口调用可以使用exec sp_stu;