Oralce定时执行procedure


第一步:创建存储过程procedure

create or replace procedure insertPixLog
 as
begin
 insert into PIXLOG (PATIENTID, LOGTYPE, OPERATER, OPERATETIME, BACKUPSQL, AREAID,
 ID, ORIGINALOBJECT)
values ('0000243319');
 commit;
 end;


第一步:创建调用procedure的定时任务   注意最后面的1 / (24*60') 是每分钟一次   一天除以24小时再除60分钟嘛, 一天运行一次就'TRUNC(sysdate,''mi'') + 1 '); 


declare 

job number; 
begin 
dbms_job.submit( job, ' insertPixLog;', sysdate, 'TRUNC(sysdate,''mi'') + 1 / (24*60'); 
 commit;
 end;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Oracle数据库中的定时任务可以使用DBMS_SCHEDULER包来手动执行。下面是一个简单的步骤: 1. 使用SYS或具有管理员权限的用户登录到Oracle数据库中。 2. 打开SQL Plus或SQL Developer等工具。 3. 连接到数据库,并输入以下命令以创建一个简单的定时任务: ``` BEGIN DBMS_SCHEDULER.CREATE_JOB ( job_name => 'my_job', job_type => 'PLSQL_BLOCK', job_action => 'BEGIN my_procedure(); END;', start_date => SYSTIMESTAMP, repeat_interval => 'FREQ=HOURLY; INTERVAL=1', enabled => TRUE, comments => 'My new job' ); END; / ``` 在上面的命令中,我们创建了一个名为"my_job"的定时任务,它每小时重复执行一次,并在启用时运行PL/SQL块。 4. 执行以下命令来手动运行定时任务: ``` BEGIN DBMS_SCHEDULER.RUN_JOB('my_job'); END; / ``` 在上面的命令中,我们手动运行名为"my_job"的定时任务。 请注意,如果你要手动执行定时任务有任何依赖项,如数据库对象或作业链,则必须在手动运行之前确保这些依赖项已经准备就绪。 ### 回答2: 要手动执行Oracle数据库中的定时任务,可以使用以下步骤: 1. 首先,确保你拥有执行定时任务的权限。可以使用sysdba角色登录到数据库中。 2. 打开SQL Plus或者SQL开发工具,连接到目标数据库。 3. 使用ALTER USER语句授予用户执行定时任务的权限。例如,你可以使用以下语句为用户myuser赋予JOB执行权限: ALTER USER myuser GRANT JOB; 4. 接下来,使用DBMS_SCHEDULER.CREATE_JOB存储过程创建定时任务。该过程接受一系列参数,包括任务名称、任务类型、执行语句等。例如,以下是一个创建新任务的示例: BEGIN DBMS_SCHEDULER.CREATE_JOB ( job_name => 'my_job', job_type => 'PLSQL_BLOCK', job_action => 'BEGIN my_procedure; END;', start_date => SYSTIMESTAMP, repeat_interval => 'FREQ=DAILY; BYHOUR=8;', enabled => TRUE, comments => '定时任务示例'); END; 这个例子创建了一个名为"my_job"的任务,类型是PL/SQL块。该任务定义了一个调用名为"my_procedure"的存储过程的动作。它在每天早上8点启动,并一直重复执行。 5. 一旦任务创建成功,你可以使用DBMS_SCHEDULER.RUN_JOB存储过程手动执行定时任务。例如,以下是一个手动执行任务的示例: BEGIN DBMS_SCHEDULER.RUN_JOB('my_job'); END; 这段代码会立即执行名为"my_job"的任务。 通过执行上述步骤,你可以手动执行Oracle数据库中的定时任务。记住,在执行这些操作之前,确保你了解相关的权限和安全性考虑。 ### 回答3: Oracle是一种关系型数据库管理系统,它具有强大的定时任务执行功能。要手动执行Oracle定时任务,可以通过以下步骤进行操作: 1. 首先,登录到Oracle数据库的命令行界面。 2. 使用管理员权限或拥有适当权限的用户,连接到数据库。 3. 确定要执行定时任务。可以使用SELECT语句查询数据库中的定时任务信息。例如,可以查询表"DBA_JOBS"或"DBA_SCHEDULER_JOBS"来获取定时任务的详细信息。 4. 使用"ALTER JOB"命令修改定时任务的状态。可以使用该命令启用或禁用定时任务。例如,可以使用以下命令来禁用定时任务: ALTER JOB <job_name> DISABLE; 5. 如果需要立即执行定时任务,可以使用"EXECUTE IMMEDIATE"命令来启动任务。例如,可以使用以下命令来启动定时任务: EXECUTE IMMEDIATE 'BEGIN <job_name>.RUN(); END;'; 这将立即执行定时任务。 6. 执行完成后,可以使用相同的ALTER命令来启用定时任务。 请注意,执行定时任务需要相应的权限和授权。确保当前用户具有执行定时任务的权限,否则无法正常执行定时任务。 此外,还可以使用Oracle提供的其他工具,如SQL Developer或Oracle Enterprise Manager等进行操作。这些工具提供了可视化界面和更多的功能,更方便管理和执行定时任务。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值