如何在数据库服务启动时运行一个存储过程->触发器
如何让一个作业在每天晚上十二点运行  -》job

解决方案 »

  1.   

    1、在数据库启动时执行一个存储过程这当然要用到trigger了,触发的事件为startup,但只能用after的方式,并在数据库open后触发。
    2、指定这种有规律的运行是job的工作范围。
      

  2.   

    可以创建一个系统触发器来实现你的第一问题(必须要有ADMINISTER DATABASE TRIGGER权限):CREATE OR REPLACE TRIGGER StartupDatabaseTrigger
    AFTER TARTUP ON DATABASE
    BEGIN
    --你自己的代码;
    END StartupDatabaseTrigger;
    至于第二个问题:DBMS_JOB.SUBMIT(:v_JobNum, 'yourProcedure',SYSDATE,'trunc(SYSDATE)+1');
      

  3.   

    1、
    create trigger tri_name
    login on database
    begin
    过程名;
    end;2、
    SQL> create or replace procedure pro
      2  is
      3  begin
      4  insert into aa values(1,sysdate);
      5  end;
      6  /Procedure created
    declare
    jobno number;
    begin
    dbms_job.submit(jobno,'pro;',sysdate,'trunc(sysdate)+2');
    commit;
    end;
    /