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,