select *
   from (
with seq as (
         select level l
           from dual connect by level <= ( select max(x) from t )
)
select l, x, decode(x, null, l ) falta
   from seq left outer join t on ( l = x )
  order by 1
         )
  where falta is not null
/

Seria um método. Segue exemplo:
Balise a sequencia com uma view completa e faça um outer join com sua tabela. 
Com uma comparação simples, voce 
encontrará os gaps.


SQL> select * from t;

             X
-------------
             1
             3
             4
             5
             6
            10
            13

7 rows selected.

SQL> with seq as (
   2          select level l
   3            from dual connect by level <= ( select max(x) from t )
   4  )
   5  select l, x, decode(x, null, l ) falta
   6    from seq left outer join t on ( l = x )
   7   order by 1
   8  /

             L             X         FALTA
------------- ------------- -------------
             1             1
             2                           2
             3             3
             4             4
             5             5
             6             6
             7                           7
             8                           8
             9                           9
            10            10
            11                          11
            12                          12
            13            13

13 rows selected.


criscadba wrote:
> Boa tarde !
> 
> Os desenvolvedores usam uma sequence para preencher a pk de uma 
> tabela, só que alguém andou com a sequence em alguns momentos e a pk 
> da tabela, que tem que ser sequencial, ficou com furos, exemplo :
> 
> protocolo_inscricao
> 1
> 3
> 4
> 5
> 6
> 10
> 13
> 
> Há alguma função que me diga quais os números estão faltando porque 
> foram pulados pelo avanço indevido da sequence ?

-- 
Marcio Portes
http://mportes.blogspot.com


--------------------------------------------------------------------------------------------------------------------------
Atenção! As mensagens deste grupo são de acesso público e de inteira 
responsabilidade de seus remetentes.
Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ 
--------------------------------------------------------------------------------------------------------------------------_____________________________________________________________________
Area de download do grupo - http://www.4shared.com/dir/101727/a4dcc423  
Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/oracle_br/

<*> Para sair deste grupo, envie um e-mail para:
    [EMAIL PROTECTED]

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
    http://br.yahoo.com/info/utos.html

 


Responder a