当前位置: 首页 > article >正文

Oracle创建存储过程,创建定时任务

在Oracle数据库中,创建存储过程和定时任务(也称为调度任务)是常见的数据库管理任务。以下是创建存储过程和定时任务的步骤和说明。

创建存储过程

创建存储过程的sql脚本

create or replace procedure 存储过程名称...
is
begin
  脚本逻辑...
COMMIT;
end;

脚本示例,将user表的数据插入到account表(注:这里我示例的两个表字段都是一样的,所以可以直接插,不一样的话需要调整一下insert语句)

create or replace procedure account_procedure
is
begin
  delete from account;
  insert into account
select * from user;
COMMIT;
end;

调用存储过程


--BEGIN
  --存储过程名称
--END
--示例
BEGIN
  ACCOUNT_PROCEDURE
END

删除存储过程

--DROP PROCEDURE 存储过程名称;
DROP PROCEDURE account_procedure;

创建定时任务

DBMS_JOB创建定时任务的脚本。

DECLARE
  job_id NUMBER;
BEGIN
  -- 创建定时任务
  SYS.DBMS_JOB.SUBMIT(
    job       => job_id,
    what      => 'ACCOUNT_PROCEDURE;', -- 要执行的PL/SQL代码或存储过程
    next_date => TRUNC(SYSDATE, 'DD') + 11/24, -- 下次执行时间为今天11点
    interval  => 'TRUNC(SYSDATE + 1, ''DD'') + 11/24', -- 每天11点执行
    no_parse  => TRUE
  );
  -- 输出确认信息
  DBMS_OUTPUT.PUT_LINE('Job Number is: ' || TO_CHAR(job_id));
  -- 提交事务
  COMMIT;
EXCEPTION
  WHEN OTHERS THEN
    -- 如果发生错误,输出错误信息
    DBMS_OUTPUT.PUT_LINE('创建定时任务时发生错误: ' || SQLERRM);
END;

删除定时任务的sql脚本

DECLARE
  job_id NUMBER;
BEGIN
  -- 查询 job_id
  SELECT job
  INTO job_id
  FROM user_jobs
  WHERE what = 'ACCOUNT_PROCEDURE;';
  -- 删除定时任务
  DBMS_JOB.REMOVE(job_id);
  -- 输出确认信息
  DBMS_OUTPUT.PUT_LINE('定时任务 ' || TO_CHAR(job_id) || ' 已成功删除。');
EXCEPTION
  WHEN NO_DATA_FOUND THEN
    -- 如果没有找到任务,输出错误信息
    DBMS_OUTPUT.PUT_LINE('没有找到匹配的定时任务。');
  WHEN OTHERS THEN
    -- 如果发生其他错误,输出错误信息
    DBMS_OUTPUT.PUT_LINE('删除定时任务时发生错误: ' || SQLERRM);
END;


http://www.kler.cn/a/371375.html

相关文章:

  • 采用STM32CubeMX和HAL库的定时器应用实例
  • python爬虫实战案例——抓取B站视频,不同清晰度抓取,实现音视频合并,超详细!(内含完整代码)
  • 八,Linux基础环境搭建(CentOS7)- 安装Mysql和Hive
  • C++ 整型大数运算(大整数运算)项目
  • STM32主从定时器输出个数、频率可调的脉冲
  • uniapp的IOS证书申请(测试和正式环境)及UDID配置流程
  • 太速科技-430-基于RFSOC的8路5G ADC和8路10G的DAC PCIe卡
  • 【C++单调栈】1673. 找出最具竞争力的子序列|1802
  • P1012 [NOIP1998 提高组] 拼数
  • 浏览器HTTP缓存解读(HTTP Status:200 304)
  • 【Mac】安装CosyVoice
  • spyglass关于cdc检测的一处bug
  • 精益求精:提升机器学习模型表现的技巧”
  • 如何批量注册多个Outlook邮箱账号并避免关联
  • apisix的原理及作用,跟spring cloud gateway有什么区别?
  • 《Linux运维总结:基于ARM64+X86_64架构CPU使用docker-compose一键离线部署redis 6.2.14容器版哨兵集群》
  • angular使用http实现get和post请求
  • TimyNote:轻便高效的跨平台笔记工具
  • 如何使用Photoshop修改图标为纯色
  • MATLAB细胞干扰素信号矩阵和微分方程计算分析
  • 【06-并发控制:互斥 (1)-课堂示例代码运行】 modelchecker的使用封装 Peterson算法的修改和验证
  • 迈威通信西安采矿展大放异彩,驱动煤矿智能转型加速跑
  • 面试中的一个基本问题:如何在数据库中存储密码?
  • Codeforces Round 909 (Div. 3)
  • selenium解决调用Chrome str’ object has no attribute ‘capabilities’ Process finished
  • redis修改配置文件配置密码开启远程访问后台运行