quarta-feira, agosto 01, 2012

Executando um loop entre uma diferença de datas no Oracle

HI,

Vou precisar criar uma procedure para inserir/atualizar dados de acordo com um período informado. Se for para inserir, criar um registro para cada data do período informado.

Ex: Período de 01/06/2012 à 03/06/2012, taxa 5%

Quando for inserir, a procedure vai criar 3 registros na tabela
01/06/2012 - 5
02/06/2012 - 5
03/06/2012 - 5

Antes de partir para a procedure, criei a lógica que vou precisar.


declare


data_inicial date;
data_final date;
num_dias number;

begin


data_inicial := to_date('10/06/2012','DD//MM/YYYY');
data_final := to_date('20/06/2012','DD//MM/YYYY');


dbms_output.put_line( 'data inicial: ' || to_char(data_inicial,'DD/MM/YYYY'));
dbms_output.put_line( 'data final: ' || to_char(data_final,'DD/MM/YYYY'));


num_dias := (data_final - data_inicial)+1;


dbms_output.put_line( 'dias: ' || num_dias);
dbms_output.put_line( '' );


for i in 1..num_dias loop
  dbms_output.put_line( 'data: ' || to_char((data_inicial-1)+i,'DD/MM/YYYY') || ', dia ' || i);
end loop;


end;

Resultado da execução da instrução pl/sql




Nesse endereço tem informações sobre loop no oracle


Fiquem na Paz!!!

Um comentário:

Aarão disse...

Queria fazer a mesma coisa só que entre data e hora