You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用DBMS_JOB.SUBMIT结合INSERT语句迁移数据表失败求助

解决DBMS_JOB结合INSERT迁移数据失败的问题

你的代码核心问题是作业中的INSERT操作未提交事务。DBMS_JOB的作业运行在独立会话中,执行完INSERT后如果没有显式COMMIT,事务会自动回滚,导致数据无法持久化到customers_tbl1。

修改后的可用代码

DECLARE
    l_job NUMBER;
 BEGIN
    DBMS_JOB.SUBMIT(
       job       => l_job,
       what      => 'BEGIN insert into customers_tbl1 select * from customers_tbl; COMMIT; END;',
       next_date => SYSDATE, -- 立即触发作业执行
       interval  => NULL     -- 仅执行一次,无需重复调度
    );
   COMMIT; -- 提交作业调度的事务,确保作业被成功注册
 END;
/

额外排查步骤

  • 检查作业执行状态:通过查询视图确认作业是否正常执行
    SELECT job, what, next_date, failures, broken FROM user_jobs;
    
    若failures值大于0,说明作业执行出错,可查看告警日志或相关会话日志定位问题。
  • 手动触发测试:如果需要立即验证逻辑,可调用DBMS_JOB.RUN(l_job);手动执行作业,同时观察是否有报错信息。

内容的提问来源于stack exchange,提问作者Bob

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 22:07:37