Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

jeffecardoso

Gerar massa de dados

Recommended Posts

Primeiramente gostaria de agradecer a todos do fórum por sempre postarem conteúdo de altíssima valia.
E gostaria de pedir ajuda caso alguém puder, estou desenvolvendo um trabalho acadêmico, onde preciso gerar uma grande quantidade de dados para analise.
Os dados que preciso gerar são para a tabela Movimentação "Esqueci de mencionar, estou criando uma Instituição Bancaria", segue a estrutura das tabelas.
CREATE TABLE MOVIMENTACAO
(	
"CONTA" NUMBER(*,0),  -- Número da conta
"DIG_CONTA" NUMBER(*,0), -- Digito da conta
"VALOR" NUMBER(7,0), 
"DEBT_CREDT" NUMBER(*,0), -- Aqui será '0' Debito ou '1' Credito
"DT_TRANSACAO" DATE, 
"ID_MOVIMENTACAO" NUMBER(*,0)
); 
CREATE TABLE TB_CONTA_CC    
(   
   ID_PESSOA NUMBER(*,0) 
   NR_CONTA NUMBER,     
   NR_DIG_CONTA NUMBER,
   NR_AGENCIA NUMBER, 
   ID_DISP_SEG NUMBER, 
   TITULARIDADE CHAR(1 BYTE)
);

Onde está meu dilema, minha tabela "Conta Corrente" possuí quase 2 milhões de contas, e preciso de dados que contemple cerca de 8 anos, Ex: Jan de 2002 a Dez de 2009. Tendo um minimo de 4 transações mês a mês para cada conta, em todo esse período. Poderiam me auxiliar na criação deste script.

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom tarde,

Motta.

 

Já tinha testado seu script ( que por sinal já salvei, é de grande valia), antes de postar, pesquisei no fórum, é inicialmente não atende a minha necessidade.

 

O que estou em mente e testando, e por um cursor dentro do bloco para trazer conta a conta, porém estou empacado em como incluir as movimentações (minimo de 4) mês a mês para cada ano. Por isso solicitei ajuda dos nobres jedis.

Compartilhar este post


Link para o post
Compartilhar em outros sites

grosso modo

declare
vn_vezes number;
begin 
for r in (select * from TB_CONTA_CC)--ler todas as contas
loop
  for m in (select add_months(to_date('012014','mmyyyy'),rownum-1) mes
            from   user_tab_columns
            where rownum < 17) --gera meses seguidos
  loop
    select round(20 * dbms_random.value) into vn_vezes from dual;--gera um numero de 1 a 20
    for i in 1..vn_vezes
    loop
       insert ....
    end loop;
  end loop;
end loop;

end;
x

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.