Pular para o conteúdo

Função em PL/SQL para recuperar letras ou números randomicamente

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,

JElias

JElias

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

plugins premium WordPress