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âmetros | Descriçã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 |
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