使用动态sql
execute immediate 'drop sequence test.sz_test;'
execute immediate 'create ……'

解决方案 »

  1.   

    一个计划任务的简单例子: 创建测试表
    SQL> create table a(a date);表已创建。创建一个自定义过程
    SQL> create or replace procedure test as
      2  begin
      3  insert into a values(sysdate);
      4  end;
      5  /过程已创建。创建JOB
    SQL> variable job1 number;
    SQL> 
    SQL> begin
      2  dbms_job.submit(:job1,'test;',sysdate,'sysdate+1/1440');  --每天1440分钟,即一分钟运行test过程一次
      3  end;
      4  /PL/SQL 过程已成功完成。运行JOB
    SQL> begin
      2  dbms_job.run(:job1);
      3  end;
      4  /PL/SQL 过程已成功完成。SQL> select to_char(a,'yyyy/mm/dd hh24:mi:ss') 时间 from a;时间
    -------------------
    2001/01/07 23:51:21
    2001/01/07 23:52:22
    2001/01/07 23:53:24删除JOB
    SQL> begin
      2  dbms_job.remove(:job1);
      3  end;
      4  /PL/SQL 过程已成功完成。
      

  2.   

    谢谢 zlqs(啊啊啊) 这么快的答复,请问以上这些在sqlplus下顺序执行就成?其中:jobl参数传什么过程名吗?另外,任务希望在每天固定的时间点执行如何写?
      

  3.   

    创建JOB
    SQL> variable job1 number;
    SQL> 
    SQL> begin
      2  dbms_job.submit(:job1,'test;',sysdate,'sysdate+1/');  --即每天运行test过程一次
      3  end;
      4  /PL/SQL 过程已成功完成。用你写的过程名替换test就可以了,job1不用管的,系统自动生成job号。
    select * from user_jobs