oracle job 脚本

 
DECLARE
  X NUMBER;
BEGIN
  SYS.DBMS_JOB.SUBMIT
    ( job       => X
     ,what      => 'CRM.XYCSSQL.PACKWORKLOG;' --- 存储过程名称
     ,next_date => to_date('13-02-2009 05:00:00','dd/mm/yyyy hh24:mi:ss')  --- 下一次运行时间
     ,interval  => 'TRUNC(SYSDATE+1)+5/24'   ---- 间隔时间
     ,no_parse  => TRUE
    );
  SYS.DBMS_OUTPUT.PUT_LINE('Job Number is: ' || to_char(x));
END;
/

commit;

 

注:存储过程和job的用户名必须是一个才行。

Oracle 数据库中,任务(Job)通常指的是通过 `DBMS_JOB` 或 `DBMS_SCHEDULER` 创建的定时任务。要删除这些任务,可以使用相应的系统包和 SQL 脚本。 ### 使用 `DBMS_JOB` 删除任务 如果任务是通过 `DBMS_JOB` 创建的,可以使用 `DBMS_JOB.REMOVE(job_id)` 来删除指定的任务。以下是一个删除任务的示例脚本: ```sql BEGIN DBMS_JOB.REMOVE(job => 123); -- 替换为实际的任务ID END; / ``` 执行完上述脚本后,任务将从数据库中移除。需要注意的是,只有任务的所有者或具有适当权限的用户才能删除任务 [^4]。 ### 使用 `DBMS_SCHEDULER` 删除任务 如果任务是通过 `DBMS_SCHEDULER` 创建的,则可以使用 `DBMS_SCHEDULER.DROP_JOB` 方法进行删除。以下是一个示例脚本: ```sql BEGIN DBMS_SCHEDULER.DROP_JOB(job_name => 'your_job_name'); -- 替换为实际的任务名称 END; / ``` 此方法会直接删除指定名称的任务 [^2]。 ### 查询现有任务 在删除任务之前,可以先查询当前数据库中存在的任务,以确认任务的 ID 或名称。对于 `DBMS_JOB`,可以查询 `DBA_JOBS` 视图: ```sql SELECT job, schema_user, next_date, next_sec, broken, interval FROM dba_jobs; ``` 对于 `DBMS_SCHEDULER`,可以查询 `DBA_SCHEDULER_JOBS` 视图: ```sql SELECT job_name, job_type, job_action, start_date, repeat_interval, enabled FROM dba_scheduler_jobs; ``` 这些查询可以帮助定位需要删除的任务 [^2]。 ### 注意事项 - 删除任务前,建议先确认任务的类型(`DBMS_JOB` 或 `DBMS_SCHEDULER`)以及任务的 ID 或名称。 - 如果任务正在运行,可能需要先停止任务,然后再删除。 - 删除任务的操作是不可逆的,请谨慎操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值