Tenta assim:

  select *
    from (
 with seq as (
          Select Rownum From user_objects t1, user_objects t2 where rownum
<= ( 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



-----Mensagem original-----
De: oracle_br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em
nome de Marcelo Cauduro
Enviada em: quarta-feira, 18 de janeiro de 2006 07:49
Para: oracle_br@yahoogrupos.com.br
Assunto: Re: [oracle_br] Como saber qual numero falta na pk ?

Marcio, essa query nao retorna

ORA-01473: cannot have subqueries in CONNECT BY clause ?



On 1/17/06, Marcio Portes <[EMAIL PROTECTED]> wrote:
>
>  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
>
>
>  *Yahoo! Grupos, um serviço oferecido por:*  PUBLICIDADE
>
<http://br.rd.yahoo.com/SIG=12fib5nru/M=387526.7663462.8697482.1588051/D=brc
lubs/S=2137114689:HM/Y=BR/EXP=1137553830/A=3242383/R=2/id=noscript/SIG=16fep
r8g1/*http://landingstrip.dell.com/landingstrip/ls.asp?CID=10164&LID=293758&;
DGC=BA&DGStor=DHS&DGSite=Yahoo&Conum=BR&DURL=http://www1.la.dell.com/content
/products/category.aspx/notebooks?c%3Dbr%26l%3Dpt%26s%3Ddhs>
> ------------------------------
> *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]<[EMAIL PROTECTED]
om.br?subject=Unsubscribe>
>
>    - O uso que você faz do Yahoo! Grupos está sujeito aos Termos do
>    Serviço do Yahoo! <http://br.yahoo.com/info/utos.html>.
>
>


[As partes desta mensagem que não continham texto foram removidas]



----------------------------------------------------------------------------
----------------------------------------------
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




 






--------------------------------------------------------------------------------------------------------------------------
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