Função para retornar número ou letras randomicamente
Olá pessoal, tudo bem?
Vai aí uma função bem simples para recuperar números ou letras randomicamente de 10 caracteres.
Código:
CREATE OR REPLACE FUNCTION F_RANDOM(p_caract boolean default true) RETURN VARCHAR2 IS
v_param varchar2(15);
v_return varchar2(256);
BEGIN
for x in 1..1000000
loop
select trunc(to_number(to_char(systimestamp, 'SSSSS.FF6'))*1000) into v_param from dual;
dbms_random.initialize(v_param);
v_return := to_char(abs(dbms_random.random-(x/1)));
dbms_random.terminate();
if p_caract then
v_return := translate(v_return,'0123456789','ABCDEFGHIJ');
end if;
return(v_return);
end loop;
END F_RANDOM;
Exemplo com resultado em letras:
declare
v_result varchar2(30);
begin
v_result := f_random;
dbms_output.put_line(v_result);
end;
BEBGEDCBBC
Exemplo com resultado em números:
declare
v_result varchar2(30);
begin
v_result := f_random(false);
dbms_output.put_line(v_result);
end;
1071673929
Abraços,