写一存储过程要求:建立只有一列字段的表,该列是从1到100。然后将该列改为从201到300。用序列来实现。
请教各位大虾,小妹是新手 先谢过了! 急!

解决方案 »

  1.   

    建立两个序列
    create sequence ss start with 1 increment by 1;
    create sequence qq start with 1 increment by 1;
    建立表
    建立存储过程
    做个循环,执行100次,每次执行
    insert table tablename (col) values(ss.nextval);
    结束后,在做个循环,执行100次,每次执行
    update tablename set col=ss.nextval where col=qq.nextval;
      

  2.   

    建两个序列,
    create sequence ss start with 1   increment by 1;
    create sequence qq start with 200 increment by 1;用第一个序列每次取值时做个判断if,如果大于了100就转用第二个序列的值
      

  3.   

    补充一下 ss.currval 表示序列的当前值,ss.nextval表示序列的下一个值
      

  4.   

    create or replace procedure scott.createSeqTable
    as
      i integer:=0;
    begin
      execute immediate 'create table scott.seqtable(NO number(20))';
      execute immediate 'create sequence scott.seq increment by 1 start with 1';
      for i in 1..100 loop
        execute immediate 'insert into seqtable values (scott.seq.nextval)';
      end loop;
      execute immediate 'alter sequence scott.seq increment by 1 minvalue 100';
    end;