关于oracle存储过程和触发器
来源:互联网 发布:阿里巴巴排名查询软件 编辑:程序博客网 时间:2024/05/22 12:04
下面实现的功能是:如果test表中的两列sum值相除结果小于0.99,则将分子的所有值增大0.5%
1. 创建存储过程
create or replace procedure proc_update_test ascountvalue number;
sqlstr varchar2(2000);
begin
sqlstr := 'select sum(braod_suc_num)/sum(try_broad_num) from test where trunc(start_time,''dd'')=trunc(sysdate-1,''dd'')';
EXECUTE IMMEDIATE sqlstr into countvalue ;
if countvalue<0.99
then
update test set braod_suc_num = braod_suc_num*1.005 where trunc(start_time,'dd')=trunc(sysdate-1,'dd');
commit;
else
null;
end if;
end;
2. 创建定时任务job -- 在CommondSql 窗口中执行,设置每天下午16:20执行
declare
job number ;
begin
dbms_job.submit(job, 'proc_update_test ;', sysdate, 'TRUNC(SYSDATE + 1) + (16*60+20)/(24*60)');
commit;
end;
/
2.1 查看该任务的job 号
select * from dba_jobs where what = 'proc_update_test;'; ---查job字段
2.1 通过命令启动任务
在CommondSql窗口执行
begin
dbms_job.run(jobno);
end;
/
2.2 在PL/SQL中启动任务
找jobs文件夹下的相应job对应的job编号,右键->run
----------------------------下面借鉴他人成果------------------------------------------------------------------------
删除job:dbms_job.remove(jobno);
修改要执行的操作:job:dbms_job.what(jobno,what);
修改下次执行时间:dbms_job.next_date(job,next_date);
修改间隔时间:dbms_job.interval(job,interval);
停止job:dbms.broken(job,broken,nextdate);
启动job:dbms_job.run(jobno);
补充: 描述 INTERVAL参数值 每天午夜12点 ''TRUNC(SYSDATE + 1)'' 每天早上8点30分 ''TRUNC(SYSDATE + 1) + (8*60+30)/(24*60)'' 每星期二中午12点 ''NEXT_DAY(TRUNC(SYSDATE ), ''''TUESDAY'''' ) + 12/24'' 每个月第一天的午夜12点 ''TRUNC(LAST_DAY(SYSDATE ) + 1)'' 每个季度最后一天的晚上11点 ''TRUNC(ADD_MONTHS(SYSDATE + 2/24, 3 ), ''Q'' ) -1/24'' 每星期六和日早上6点10分 ''TRUNC(LEAST(NEXT_DAY(SYSDATE, ''''SATURDAY"), NEXT_DAY(SYSDATE, "SUNDAY"))) + (6×60+10)/(24×60)''
<pre name="code" id="best-answer-content" class="reply-text mb10" style="margin-top:0px; margin-bottom:10px; padding-top:0px; padding-right:0px; padding-bottom:0px; padding-left:0px; font-family:Arial; white-space:pre-wrap; word-wrap:break-word; zoom:1; line-height:22px">--删除定时任务,括号里为user_jobs表中job字段的编号
exec dbms_job.remove(61);
0 0
- 关于oracle存储过程和触发器
- oracle存储过程和触发器
- oracle存储过程和触发器
- oracle触发器和存储过程
- oracle触发器和存储过程
- Oracle中的存储过程,函数和触发器
- Oracle的存储过程、函数和触发器
- oracle 触发器和存储过程简单例子
- oracle中的游标,例外,存储过程,存储函数和触发器
- 触发器和存储过程
- 触发器和存储过程
- 触发器和存储过程
- 触发器和存储过程
- 存储过程和触发器
- 存储过程和触发器
- 存储过程和触发器
- 触发器和存储过程
- 存储过程和触发器
- Qt拖拽事件小结
- Androidstudio签名打包后drawable目录下的部分gif图片大小变成0kb
- java中int转String类型,String类型转int类型
- Redis - Commands
- 如何设置Eclipse中的文字
- 关于oracle存储过程和触发器
- View之AutoCompleteView
- css实现柱状图
- 跨平台APP----对Cordova,APPCan,DCloud,APICloud四大平台的分析
- c/c++语言基础——杂七杂八概念
- ReactJS 入门实例学习
- Android手机实时同步到PC---转载搜狗测试
- 直接在 CSS 中引用 FONTAWESOME 图标(附码表)
- 并行计算之路<2>——CUDA与纹理映射