当前位置: 代码迷 >> Oracle开发 >> oracle写定时任务出现的有关问题
  详细解决方案

oracle写定时任务出现的有关问题

热度:206   发布时间:2016-04-24 06:25:19.0
oracle写定时任务出现的问题
  create or replace procedure proc_test as
        begin
                  insert into aa(id) select a.id,             
               sysdate from a;
        end; 
        
        
 declare job_num number;
 begin
    dbms_job.submit(job_num,'proc_test;',SYSDATE,'sysdate+2/24/60');
 end;
  

问题在行: 8 上开始执行命令时出错 -
declare job_num number;
 begin
    dbms_job.submit(job_num,'proc_test;',SYSDATE,'sysdate+2/24/60');
 end;
  
错误报告 -
ORA-06550: 第 1 行, 第 93 列: 
PLS-00905: 对象 CESHI1.PROC_TEST 无效
ORA-06550: 第 1 行, 第 93 列: 
PL/SQL: Statement ignored
ORA-06512: 在 "SYS.DBMS_JOB", line 82
ORA-06512: 在 "SYS.DBMS_JOB", line 140
ORA-06512: 在 line 3
06550. 00000 -  "line %s, column %s:\n%s"
*Cause:    Usually a PL/SQL compilation error.
*Action:
------解决思路----------------------
表aa只列了一个字段,所以查询a表时只要字段a.id即可,sysdate不需要

                  insert into aa(id) select a.id,             
               sysdate from a;

------解决思路----------------------
存储过程内部存在问题,插入一个列 后面又select 两个列,肯定会报错
 create or replace procedure proc_test as
        begin
                  insert into aa(id) select a.id,             
               sysdate from a;
        end; 
  相关解决方案