oracle中如何为字符串创建序列??
举一个例子??

解决方案 »

  1.   

    为字符串创建序列是什么意思?
    seq.currval=a then
    seq.nextval=b?
      

  2.   

    看了楼主的帖子,有了点想法,写了个过程
    create sequence seqtest1
    start with 65
    maxvalue 90
    minvalue 65
    cycle;
    create sequence seqtest2
    start with 65
    maxvalue 90
    minvalue 65
    cycle;
    create sequence seqtest3
    start with 65
    maxvalue 90
    minvalue 65
    cycle;
    declare 
    a number:=seqtest1.nextval;
    b number:=seqtest2.nextval;
    c number:=seqtest3.nextval;
    begin
    execute immediate 'create global temporary table tmp(a varchar2(10))' ;
    for i in 1..1000 loop
      execute immediate 'insert into tmp values(chr(:1)||chr(:2)||chr(:3))'using a,b,c;
      if b=90 and c=90 then a:=seqtest1.nextval; end if;
      if c=90 then b:=seqtest2.nextval; end if;
      c:=seqtest3.nextval;
    end loop;
    end;
    A
    AAA
    AAB
    AAC
    AAD
    AAE
    AAF
    AAG
    AAH
    AAI
    AAJ
    AAK
    ...
      

  3.   


    什么是为字符串串创建序列呀。可以create sequence来创建sequence,这里的sequence是数字字段,你可以自己来进行处理变成字符呀。
      

  4.   


    用3个seq的可以,也可以用一个seq来实现,进行一下转换, 3个seq的性能要低于用一个seq的。
      

  5.   

    请说清楚一点,为字符串创建序列啥意思?是不是A001、A002、A003...?
      

  6.   

    楼主的意思应该是为字符串字段创建自增序列,可以先create sequence,然后to_char转化成字符串
      

  7.   

    --Oracle 序列
    create sequence sequence_name [increment by n] [start with n] [{maxvalue n | nomaxvalue(默认) }] 
                      [{minvalue n | nominvalue (默认)}] [{cycle | nocycle (默认)}] [{cache n | nocache(默认20)}];
    alter sequence sequence_name [increment by n] [{maxvalue n | nomaxvalue }] [{minvalue n | nominvalue }]
                      [{cycle | nocycle}] [{cache n | nocache}];
    首次引用序列时,只能使用伪列nextval;修改序列时,序列的初始值不能修改。
    nextval即序列的下一个值,currentval是当前序列值
    若要创建sx_01、sx_02这样的值,可以创建一个序列,然后在使用to_char
      

  8.   

    create sequence  +  to_char