[firebase-br] Saber se numeração está ausente?
José Mauricio Barbisan Zottis
bzottis em ig.com.br
Qua Out 2 17:54:24 -03 2013
Uma vez precisei e com a ajuda da lista cheguei a essa procedure, espero
que seja útil
SET TERM ^ ;
CREATE OR ALTER PROCEDURE OBTER_CODIGO_NULO
returns (
codigo_nulo integer)
as
declare variable minimo integer;
declare variable maximo integer;
declare variable sequencia integer;
declare variable valor_atual integer;
begin
select mIN(F.Codigo_anual) from Far_mtr F where EXTRACT(YEAR FROM
F.Data_cad) = EXTRACT(YEAR FROM CURRENT_DATE)
INTO MINIMO;
select max(F.Codigo_anual) from Far_mtr F where EXTRACT(YEAR FROM
F.Data_cad) = EXTRACT(YEAR FROM CURRENT_DATE)
INTO MAXIMO;
sequencia = MINIMO;
while (sequencia <= maximo) DO
begin
select FIRST 1 F.Codigo_anual from Far_mtr F where
F.Codigo_anual = :sequencia
and EXTRACT(YEAR FROM F.Data_cad) = EXTRACT(YEAR FROM
CURRENT_DATE)
INTO Valor_atual;
if (:Valor_atual <> :Sequencia) then
begin
CODIGO_NULO = Sequencia;
leave;
END
Sequencia = Sequencia + 1;
end
suspend;
end^
SET TERM ; ^
Mais detalhes sobre a lista de discussão lista