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