Gostou do artigo e quer me ajudar? então clique em uma das propagandas ao lado!!
quarta-feira, 22 de agosto de 2012
FIrebird - Stored Procedure com While
CREATE OR ALTER PROCEDURE EXECUTA_VALORES
returns (
NOME_ varchar(50),
VALOR_ NUMERIC(15,2))
as
declare variable i integer;
declare variable Val NUMERIC(15,2);
declare variable Div NUMERIC(15,2);
begin
for select NOME, VALOR from TESTE
into :NOME_, :Val
do
begin
if (:Val >= 4999) then
begin
Div = CAST((:Val/4999) AS integer) + 1;
i = 1;
while (i < div) DO
begin
VALOR_ = :VAL/DIV;
i = i+1;
suspend;
end
end
else
begin
VALOR_ = :Val;
end
suspend;
end
end
//Para executar
select * from executa_valores
Assinar:
Postar comentários (Atom)
Nenhum comentário:
Postar um comentário