あなたはあなた自身の機能を作ることができます。これは1つのオプションです:
create or replace function random_str(v_length number) return varchar2 is
my_str varchar2(4000);
begin
for i in 1..v_length loop
my_str := my_str || dbms_random.string(
case when dbms_random.value(0, 1) < 0.5 then 'l' else 'x' end, 1);
end loop;
return my_str;
end;
/
select random_str(30) from dual;
RANDOM_STR(30)
--------------------------------------------------------------------------------
pAAHjlh49oZ2xuRqVatd0m1Pv8XuGs
0.5
を調整することをお勧めします さまざまなプールサイズを考慮に入れる-l
の場合は26 vs. x
の場合は36 。 (.419354839?
)。 value()を使用して、文字値の開始範囲と終了範囲を渡すこともできますが、これは文字セット固有です。
理由について...オラクルには理由が必要ですか? x
の使用 元々は16進数であり、大文字と小文字が混在するバージョンを同時に追加することなく、すべて大文字を含むように拡張されたことを示唆している可能性があります。