我的创建作业的代码如下
想在每天下午四点执行my_proc这个存储过程。DECLARE
  X NUMBER;
BEGIN
  SYS.DBMS_JOB.SUBMIT
    ( job       => X 
     ,what      => 'my_proc;'
     ,next_date => sysdate
     ,interval  => 'trunc(sysdate + 1) + 16 / 24'
     ,no_parse  => TRUE
    );
  SYS.DBMS_OUTPUT.PUT_LINE('Job Number is: ' || to_char(x));
commit;
END;现在这个代码编译可以通过,但是运行的时候提示下面的错误消息:ORA-12011:无法执行1作业 
ORA-06512:在"SYS.DBMS_IJOB",line406 
ORA-06512:在"SYS.DBMS_JOB",line272 
ORA-06512:在line1是什么原因阿,是创建作业的代码有问题么,希望各位高手指点

解决方案 »

  1.   

    job本身写的没有问题,检查你的my_proc是否有问题。
      

  2.   

    存储过程如下,运行也有错误ORA-00942: 表或者视图不存在
    ORA-06512: "MICTEST.MY_PROC",line30
    ORA-06512: line3CREATE OR REPLACE PROCEDURE my_proc IS
    v_days INTEGER;
    v_proday VARCHAR2(8); 
    v_sql VARCHAR2(100);BEGIN
       SELECT PROC_DATE INTO v_proday FROM M_SYSTEMCOND;
       SELECT WORK_TABLE_DEL_DAYS INTO v_days FROM M_SYSTEMCOND;
       
       IF v_proday IS NULL OR v_days IS NULL THEN
        --------
        RETURN;
      END IF;
      
       FOR ROW IN
       (
           SELECT COND_CD, LAST_TIME_EXE_DATE FROM M_SAMPLECOND1
           WHERE TO_DATE(LAST_TIME_EXE_DATE, 'yyyy-mm-dd') <= TO_DATE(v_proday, 'yyyy-mm-dd') + v_days
       )
       LOOP
           v_sql := 'DROP TABLE T_FACTORDATA_' || ROW.COND_CD;
           EXECUTE IMMEDIATE v_sql;
       END LOOP;
       
       EXCEPTION
         WHEN NO_DATA_FOUND THEN
           ------
         WHEN OTHERS THEN
           -- Consider logging the error and then re-raise
           RAISE;
    END my_proc;
      

  3.   

    太奇怪了,这样的表可以创建:T_FACTORDATA_@#$%*-但却不能用下面的语句删除DROP TABLE T_FACTORDATA_@#$%*-有什么办法啊
      

  4.   

    SQL> create table sstt*$- (id number);
    create table sstt*$- (id number)
                     *
    第 1 行出现错误:
    ORA-00922: 选项缺失或无效
    SQL> create table "sstt*&%_" (id number);表已创建。SQL> drop table sstt*&%_;
    drop table sstt*&%_
                   *
    第 1 行出现错误:
    ORA-00933: SQL 命令未正确结束
    SQL> drop table "sstt*&%_";表已删除。
    将表名用双引号引起来就可以删除了.