DECLARE v_id number; v_data_movimentacao DATE; v_hora_movimentacao TIMESTAMP; v_bank_emissor_id Number; v_investidor VARCHAR2(100); v_cpf_cnpj_investidor VARCHAR2(20); v_instrumento VARCHAR2(100); v_quantidade NUMBER(10); v_tipo_movimentacao VARCHAR2(20); v_valor_movimentado NUMBER(18,2); v_valor_total_atualizado NUMBER(18,2); v_observacoes VARCHAR2(200); v_max_id number; BEGIN select nvl(max(id),0) into v_max_id from findata.operacoes; FOR i IN 1..1000 LOOP v_id := (v_max_id+i); v_data_movimentacao := TRUNC(SYSDATE) - DBMS_RANDOM.VALUE(1, 100); v_hora_movimentacao := TO_TIMESTAMP(TO_CHAR(SYSDATE - DBMS_RANDOM.VALUE(1, 86400), 'DD/MM/YYYY HH24:MI:SS'), 'DD/MM/YYYY HH24:MI:SS'); v_bank_emissor_id := round(DBMS_RANDOM.VALUE(1, 353)); v_investidor := 'Investidor ' || i; v_cpf_cnpj_investidor := CASE MOD(i, 2) WHEN 0 THEN '111.111.111-11' ELSE '222.222.222-22' END; v_instrumento := 'CDB prefixado com vencimento em 22/03/2025'; v_quantidade := DBMS_RANDOM.VALUE(1, 100); v_tipo_movimentacao := CASE MOD(i, 2) WHEN 0 THEN 'Resgate' ELSE 'Aplicacao' END; v_valor_movimentado := DBMS_RANDOM.VALUE(1000, 100000); v_valor_total_atualizado := v_valor_movimentado + DBMS_RANDOM.VALUE(0, 1000); v_observacoes := NULL; INSERT INTO findata.operacoes (id, data_movimentacao, hora_movimentacao, bank_emissor_id, investidor_nome, investidor_cpf_cnpj, instrumento, quantidade, tipo_movimentacao, valor_movimentado, valor_total_atualizado, observacoes) VALUES (v_id, v_data_movimentacao, v_hora_movimentacao, v_bank_emissor_id, v_investidor, v_cpf_cnpj_investidor, v_instrumento, v_quantidade, v_tipo_movimentacao, v_valor_movimentado, v_valor_total_atualizado, v_observacoes); END LOOP; COMMIT; END; /