Re: [firebase-br] Select que traga números que não estão na sequencia
Jeferson Oliveira
jefersonfoliveira em gmail.com
Seg Set 11 11:10:04 -03 2006
A única solução que visualizo é através de stored procedure.
Abaizo o código de definição de uma SP que escrevi nesse momento.
Testei rapidamente e parece resolver seu problema.
Abraço!
Jeferson Oliveira
create procedure SP_VAGA_EM_SEQUENCIA_NUMERICA (
NOME_TABELA varchar(31),
NOME_CAMPO varchar(31),
NUMERO_INICIAL integer,
NUMERO_FINAL integer)
returns (
NUMERO_NAO_UTILIZADO integer)
as
declare variable ULTIMO_NUMERO_LIDO integer;
declare variable NUMERO_ATUAL integer;
declare variable SENTENCA varchar(200);
begin
ULTIMO_NUMERO_LIDO = 0;
SENTENCA = ' select ' || :NOME_CAMPO ||
' from ' || :NOME_TABELA ||
' where ' || :NOME_CAMPO || ' between ' ||
:NUMERO_INICIAL || ' and ' || :NUMERO_FINAL ||
' order by ' || :NOME_CAMPO;
for execute statement :SENTENCA into :NUMERO_ATUAL do
begin
while ((:NUMERO_ATUAL - 1) > :ULTIMO_NUMERO_LIDO) do
begin
NUMERO_NAO_UTILIZADO = :ULTIMO_NUMERO_LIDO + 1;
ULTIMO_NUMERO_LIDO = :NUMERO_NAO_UTILIZADO;
suspend;
end
ULTIMO_NUMERO_LIDO = :NUMERO_ATUAL;
end
end^
Mais detalhes sobre a lista de discussão lista