0

重複の可能性:
SQLに英数字シーケンスジェネレーターを含めることは可能ですか?

Oracleで関数を記述して、従業員IDに対してA0001、A0002、.. A9999、... AA0001、AA9999、... AZ0001、AZ9999、...などの文字列を生成する方法。

私はこのロジックから始めましたが、A001からZ999までしか生成できません。

CREATE OR REPLACE procedure GLOBALSHIFTER.p1 ( v1 in varchar2 default 'A') IS 

   id varchar2(4); 
   p1 number(2) := ascii(substr(v1,1,1)); 
   p2 number(2); 
   p3 number(2) ; 
   c number(1) :=1; 

begin 

   select s1.nextval into p2 from dual; 

   If p2 < 1000 then 
      id:= concat(chr(p1), lpad(p2,3,0)); 
   ELSE 
      select s1.nextval into p2 from dual; 
      p1 := p1 + 1; 
      id := concat(chr(p1), lpad(p2,3,0)); 
   END IF; 

   insert into t1 values(id); 
   commit; 

end;
4

0 に答える 0