Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Gerar String Aleatória Alfanumérica Maiúscula e Minúscula no Oracle


Você pode fazer sua própria função. Esta é uma opção:
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

Você pode querer ajustar o 0.5 para levar em conta os diferentes tamanhos de pool - 26 para l vs. 36 para x . (.419354839? ). Você também pode usar value() e passar o intervalo inicial e final dos valores de caractere, mas isso seria específico do conjunto de caracteres.

Por que... a Oracle precisa de uma razão? O uso de x pode sugerir que era originalmente hexadecimal e foi expandido para incluir todas as letras maiúsculas, sem que lhes ocorresse adicionar uma versão de maiúsculas e minúsculas ao mesmo tempo.