Oracle
SQL LOADER导入数据
用户授权表与权限回收
行列转置
SQLPLUS导出数据(SPOOL)
存储过程记录执行异常日志
查看对象创建时间
停止正在执行的DBMS_JOB
表死锁查询
查看正在执行的sql语句
数组,自定义类型
查看最后一次DML的时间
递归(CONNECT BY)
时间间隔(1h2m3s)
REGEXP_SUBSTR行变列
TRANSLATE函数
执行动态SQL
LISTAGG和WM_CONCAT函数列合并为行
表统计分析
表空间大小统计
收缩表段(shrink space)
集合类型
LIKE操作转义
分析函数(窗口函数)
高级分组 ROOLUP、CUBE、GROUPING SETS
SYS_CONTEXT()函数
进制转换
创建DBMS_JOB
执行超长的动态DDL语句
查询占用空间前100的数据表
MERGE 语句使用(UPSERT)
随机生成密码
Scheduler job
递归获取组织的全称
执行job和停止job
本站点使用 MrDoc 构建
-
+
首页
执行job和停止job
## 创建job ```sql declare v_job number; v_what varchar2(1000); begin v_what := ' begin execute immediate ''truncate table table_name''; commit; exception when others then rollback; end; '; dbms_job.submit( job => v_job, what => v_what, next_date => trunc(sysdate)+1+6/24, interval => 'trunc(sysdate)+1+6/24'); commit; dbms_output.put_line('job_id: '||v_job); end; ``` ## 执行job ```sql declare v_job number := 11; begin dbms_job.broken(v_job,false); dbms_job.next_date(v_job,sysdate+1/24/60); --1分钟后执行job commit; for rec in (select * from user_jobs where job = v_job) loop dbms_output.put_line('job: '||rec.job||chr(10)|| 'sql: '||rec.what||CHR(10)|| 'this date: '||to_char(rec.this_date,'yyyy-mm-dd hh24:mi:ss')||chr(10)|| 'next date: '||to_char(rec.next_date,'yyyy-mm-dd hh24:mi:ss')||CHR(10) ); end loop; end; ``` ## 停止job ```sql declare v_job number := 11; v_cnt number; v_sid number; v_ser number; begin select max(sid) into v_sid from dba_jobs_running where job = v_job; if nvl(v_sid,0) = 0 then return; end if; dbms_job.broken(v_job,true); commit; select serial# into v_ser from v$session where sid = v_sid; execute immediate 'alter system kill session '''||v_sid||','||v_ser||''' immediate'; end; ``` ## 更改频率 ```sql declare v_job number := 11; begin dbms_job.interval(v_job,'trunc(sysdate+1)+1/24'); dbms_job.next_date(v_job,trunc(sysdate+1)+1/24); commit; for rec in (select * from user_jobs where job = v_job) loop dbms_output.put_line('job: '||rec.job||chr(10)|| 'sql: '||rec.what||CHR(10)|| 'this date: '||to_char(rec.this_date,'yyyy-mm-dd hh24:mi:ss')||chr(10)|| 'next date: '||to_char(rec.next_date,'yyyy-mm-dd hh24:mi:ss')||CHR(10) ); end loop; end; ``` ## 更改内容 ```sql declare v_job number := 11; begin dbms_job.what(v_job,'truncate table table_name'); commit; for rec in (select * from user_jobs where job = v_job) loop dbms_output.put_line('job: '||rec.job||chr(10)|| 'sql: '||rec.what||CHR(10)|| 'this date: '||to_char(rec.this_date,'yyyy-mm-dd hh24:mi:ss')||chr(10)|| 'next date: '||to_char(rec.next_date,'yyyy-mm-dd hh24:mi:ss')||CHR(10) ); end loop; end; ```
vleity
2025年9月21日 16:49
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
PDF文档(打印)
分享
链接
类型
密码
更新密码