Assim como o nome sugere, é uma package utilizada para gerar valores aleatórios, tanto números quanto strings. Vou mostrar exemplos simples e práticos sobre a aplicação da package.
Verifique abaixo:
Busca um valor aleatório entre 1 e 10, por default, o intervalo é entre 0 e 38.
select dbms_random.value(1,10)
from dual;
Gera uma string de 20 posições apartir de um valor de entrada 'A'.
declare
str_1 varchar2(20);
begin
str_1 := dbms_random.string('A', 20);
dbms_output.put_line('str_1: '||str_1);
end;
Busca valores aleatórios.
SELECT dbms_random.normal
FROM dual;
Busca um rownum aleatório pelo order by.
select object_name
from (select object_name
from sys.all_objects
order by dbms_random.value)
where rownum = 1;
O seed é um valor gerado para iniciar o algorítmo que gera números aleatórios, para resetar o seed, basta executar a seguinte linha de comando:
exec dbms_random.seed(681457802);
Busca valores aleatórios a partir de um número.
declare
ret pls_integer;
init number(30);
BEGIN
init := to_char(sys_extract_utc(current_timestamp), 'hh24miss');
dbms_random.initialize(init);
for i in 1..10 loop
ret := dbms_random.random;
dbms_output.put_line(ret);
init := ret;
end loop;
dbms_random.terminate;
end;
Nenhum comentário:
Postar um comentário