'trunc(SYSDATE,'||''''||'mm'||''''||')+24'
==>
'trunc(SYSDATE,'||'''mm'''||')+24'

解决方案 »

  1.   

    declare 
    jobno number;
    begin 
    DBMS_JOB.SUBMIT(jobno, 
    'testg;',SYSDATE,'trunc(SYSDATE,''mm'')+24'); 
    commit; 
    end;
      

  2.   

    那为什么在SQL/PLUS中提示完成了,并用DBMS_JOB.RUN()能够执行,但我将服务器的时间改动到25号,却不能自动执行这个存储过程,希望得到帮助。绝对给分。
      

  3.   

    更改服务时间是不行的,每个job都有一个下一次执行时间,运行后修改此字段,到时间再执行。
      

  4.   

    那为什么我的这个执行也不行了
    SQL> begin
      2  dbms_job.run(2);
      3  end;
      4  /
    begin
    *
    ERROR 位于第 1 行:
    ORA-12011: 无法执行 1 作业
    ORA-06512: 在"SYS.DBMS_IJOB", line 405
    ORA-06512: 在"SYS.DBMS_JOB", line 267
    ORA-06512: 在line 2
      

  5.   

    Are you sure your job is stop?select * from all_jobs;Check the state of your job first.if your job is stoped then dbms_job.run(2) else dbms_job.stop(2)...
      

  6.   

    'trunc(SYSDATE,''mm'')+25'改成25。
    注意,修改时间是在服务端,客户端没关系的.
      

  7.   

    在SQL/PLUS中没有问题,但我将服务器端的时间修改到24号23:59:30开始等到了25号后没有调动这个存储过程呀,是什么原因,帮帮我吧
      

  8.   

    select * from dba_jobs;
    查看 NEXT_DATE, NEXT_Dec列的值。
    如果过时间还没反应,查看FAILURES列。
      

  9.   

    没有执行,我查看了failures没有任何值
      

  10.   

    NEXT_DATE, NEXT_Dec的值分别是2003-6-13和00:00:00,failures没有任何值
      

  11.   

    declare 
    jobno number;
    begin 
    DBMS_JOB.SUBMIT(jobno, 
    'testg;',SYSDATE,'trunc(SYSDATE,''mm'')+24'); 
    commit; 
    end;
    在将时间改到24号23:59:30试试
      

  12.   

    你是不是希望每天执行一次?下列代码表示每天3:00运行AAA.XXX
    begin
      sys.dbms_job.submit(job,
                         'AAA.XXX;',
                          to_date('19-06-2003 03:00:00', 'dd-mm-yyyy hh24:mi:ss'),
                          'to_date(to_char(sysdate+1,''yyyymmdd''),''YYYYMMDD'')+3/24');
      commit;
    end;
    100%没有问题,目前正在运行,呵呵~~~~
      

  13.   

    确保testg存储过程没有错误,把testg代码贴出来!
      

  14.   

    我正在作测试,想等测试成功后,将会把正式的加入。我的测试程序是这样的,很简单的一个。
    create or replace procedure testg as
    begin
    insert into testgzh(test_key,test_desc)
    values(11,'jhk');
    commit;
    end testg;
      

  15.   

    查看参数文件job_que_processes值是否过小
      

  16.   

    把问题重新整理:
    首先确认你创建进程是没有错误,存储过程也没有错误。
    然后你要得到你的进程号。
    查询DBA_JOBS的LAST_DATE,LAST_SEC,NEXT_DATE,NEXT_SEC,FAILURE,BROKEN等列。
    LAST_DATE&LAST_SEC   进程上次执行的时间
    NEXT_DATE&NEXT_SEC   进程下次执行的时间
    FAILURE              本次执行失败的次数
    BROKEN               如果为Y,则Disables job execution提交时的几个参数你也明白是什么意思吧?这样你就可以分析出问题所在了。
    只要知道是什么问题,一定可以解决。