Gerando dados randômicos Oracle (String)

Tudo sobre banco de dados e SQL

Gerando dados randômicos Oracle (String)

E aí pessoal tudo bem?

Alguns dias atrás solicitaram que fossem gerados alguns dados cadastrais de forma automática, para que os mesmos fossem utilizados em um treinamento.

Você sabia que o Oracle tem funções nativas para te auxiliar nesse processo?

Nesse post iremos ver como gerar dados randômicos do tipo String.

Agora vamos conhecer a função que gera strings de forma randômicas, entender seus parâmetros e como podemos fazer o uso na prática.

A função que gera dados randômicos se chama DBMS_RANDOM.string, é possível passar dois parâmetros para ela (opt, len), veja o exemplo abaixo.

SELECT DBMS_RANDOM.string('x',50) FROM DUAL;

Mais o que são esses parâmetros e como devo utilizar?

O primeiro parâmetro (opt) é qual tipo de string sua função irá retornar, por exemplo, alfanuméricos maiúsculos, os possíveis parâmetros a serem passados são:

ParâmetrosDescrição do que ele faz
‘u’, ‘U’uppercase alpha characters
‘l’, ‘L’lowercase alpha characters
‘a’, ‘A’mixed case alpha characters
‘x’, ‘X’uppercase alpha-numeric characters
‘p’, ‘P’any printable characters
Fonte: Oracle DBMS_RANDOM

O segundo parâmetro (len) é o tamanho da string que será retornada, no exemplo acima, são 50 caracteres.

Beleza, já vimos qual é função que gera dados e quais são seus parâmetros, agora vamos ao exemplo prático!!!

Primeiramente vamos criar tabela que iremos inserir os dados randômicos.

CREATE TABLE DADOS_RANDOMICOS
(    
    NOME VARCHAR2(50)
);

Tabela criada, vamos inserir os dados de forma randômica agora, para isso, iremos criar uma procedure simples, que você apenas informa a quantidade de dados que deseja inserir e a procedure se encarrega do restante.

CREATE OR REPLACE PROCEDURE SP_DADOS_RANDOMICOS (V_IN_QTDE NUMBER)
IS
    V_CONT number(6,0);
BEGIN
    V_CONT := 0;    
    WHILE V_CONT < V_IN_QTDE
    LOOP
        
       INSERT INTO DADOS_RANDOMICOS (NOME)
       SELECT DBMS_RANDOM.string('x',50) FROM DUAL;

       V_CONT := V_CONT + 1;
    END LOOP;         
END;

Procedure criada com sucesso, agora vamos executar a procedure e na sequencia fazer um select na tabela que criamos, para verificar os dados gerados de forma randomica.

EXEC SP_DADOS_RANDOMICOS(1000);

SELECT * FROM DADOS_RANDOMICOS

Assim como isso nós ajudou quando precisamos, espero que ajudem vocês quando chegar uma demanda igual a que chegou para nós!!!

Fonte: Oracle Base, Oracle

 

Nenhum comentário

Adicione seu comentário

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.