这个应该用job来做,删掉再重建

解决方案 »

  1.   

    问题就是我说的,大家看看怎么能够解决,不管是触发器还是job,谢!
      

  2.   

    1.你可以写个批处理.bat文件.每天运行.
    drop sequence seqname;
    create sequence seqname start with 1;
    2.建立一个表里面记录seq是否今天有重置为一,如果没有将之置成1,然后再使用.
      

  3.   

    up
    不想借助外部方法,就像利用oracle本身解决。
      

  4.   

    这个应该用job来做,删掉再重建最好是用job还有,你置0的目的应该是想每天对数据进行重新编号。
    这个编号不一定要用seq,可以自己制定规则,在前台控制。
      

  5.   

    我现在就是用程序通过判断日期来更新数据库字段信息进行序列号置1,但是感觉比较麻烦,如果能通过数据库自动根据日期更新sequence的当前值的话会比较容易,所以就有了这个想法,大家继续啊,最好具体说说操作步骤,谢了。
      

  6.   

    SQL> create or replace procedure your_task is
      2    i pls_integer;
      3  begin
      4    select count(*) into i from all_sequences where lower(sequence_name)='your_seq';
      5    if i>0 then
      6      execute immediate 'drop sequence your_seq';
      7    end if;
      8    execute immediate 'create sequence your_seq start with 1 nocache';
      9    execute immediate 'select your_seq.nextval from dual';
     10  end;
     11  /过程已创建。SQL> var job number
    SQL> exec dbms_job.submit(:job,'your_task;',trunc(sysdate),'trunc(sysdate)+1');PL/SQL 过程已成功完成。SQL> print job       JOB
    ----------
            84SQL> exec dbms_job.run(84);PL/SQL 过程已成功完成。