重複の可能性:
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;