RES: [oracle_br] Como saber qual numero falta na pk ?

2006-01-18 Por tôpico Ivan Ricardo Schuster
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
3from dual connect by level = ( select max(x) from t )
4  )
5  select l, x, decode(x, null, l ) falta
6from 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
 1010
 11  11
 12  12
 1313

 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=10164LID=293758;
DGC=BADGStor=DHSDGSite=YahooConum=BRDURL=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: 

RES: [oracle_br] Como saber qual numero falta na pk ?

2006-01-18 Por tôpico Ivan Ricardo Schuster
Faltou um l:

  select *
from (
 with seq as (
  Select Rownum l 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


não testei, mas se o outro funcionava, este tambem deve funcionar

-Mensagem original-
De: oracle_br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em
nome de Ivan Ricardo Schuster
Enviada em: quarta-feira, 18 de janeiro de 2006 09:02
Para: oracle_br@yahoogrupos.com.br
Assunto: RES: [oracle_br] Como saber qual numero falta na pk ?

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
3from dual connect by level = ( select max(x) from t )
4  )
5  select l, x, decode(x, null, l ) falta
6from 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
 1010
 11  11
 12  12
 1313

 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=10164LID=293758;
DGC=BADGStor=DHSDGSite=YahooConum=BRDURL=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

Re: RES: [oracle_br] Como saber qual numero falta na pk ?

2006-01-18 Por tôpico criscadba
Pessoal

Muuuiito obrigada !

A query matou o problema e deu certinho !

Show de bola !

Bjos

Cris ;-)


--- Em oracle_br@yahoogrupos.com.br, Ivan Ricardo Schuster 
[EMAIL PROTECTED] escreveu

 Faltou um l:
 
   select *
 from (
  with seq as (
   Select Rownum l 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
 
 
 não testei, mas se o outro funcionava, este tambem deve funcionar
 
 -Mensagem original-
 De: oracle_br@yahoogrupos.com.br 
[mailto:[EMAIL PROTECTED] Em
 nome de Ivan Ricardo Schuster
 Enviada em: quarta-feira, 18 de janeiro de 2006 09:02
 Para: oracle_br@yahoogrupos.com.br
 Assunto: RES: [oracle_br] Como saber qual numero falta na pk ?
 
 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
 3from dual connect by level = ( select max(x) 
from t )
 4  )
 5  select l, x, decode(x, null, l ) falta
 6from 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
  1010
  11  11
  12  12
  1313
 
  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=10164LID=293758
 
DGC=BADGStor=DHSDGSite=YahooConum=BRDURL=http://www1.la.dell.com/c
ontent
 /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

RES: [oracle_br] Como saber qual numero falta na pk ?

2006-01-17 Por tôpico rodrigo

Tenho alguns casos como esses em que não posso ter furo na sequence, então
não tem jeito o aplicativo faz um MAX()+1 se não me engano o pessoal chama
isso de sequence INPARENT 

-Mensagem original-
De: oracle_br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em
nome de Fabio Quirino
Enviada em: terça-feira, 17 de janeiro de 2006 19:08
Para: oracle_br@yahoogrupos.com.br
Assunto: Re: [oracle_br] Como saber qual numero falta na pk ?

Cris,
   
  Essa situação já aconteceu comigo quando tentei fazer um INSERT, disparei
a sequence e por algum motivo dei ROLLBACK, não completando a transação.
Nisso, a transação foi desfeita, entretanto, a sequence não volta o número
anterior.
  Para vc conseguir preencher os buracos, vc terá que fazer uma função,
com isso vc pode até desabilitar a sequence e obter o próximo código para
inserir, através duma função.
   
  Valeu,
   
  Fabio Quirino

criscadba [EMAIL PROTECTED] escreveu:
  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 ?

Muito obrigada a quem puder ajudar !

Beijos

Cris ;-)







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







  



Fabio Quirino
MSN: [EMAIL PROTECTED]
ICQ: 147482462

-
 Yahoo! doce lar. Faça do Yahoo! sua homepage.

[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