Obrigado pessoal, Ja consegui o que queria.
----- Original Message ----- From: Diogo Lopez To: oracle_br@yahoogrupos.com.br Sent: Tuesday, March 04, 2008 3:41 PM Subject: Re: [oracle_br] Como faço para selecionar o primeiro/úlitmo registro de um select? Obrigado Roberto, Sua dica facilitou muito o script que eu estou fazendo! Outra dúvida, não estou conseguindo fazer um loop que atualize um campo. Fiz um cursor que percorra o select que voce recomendou, atualizando o codigo do bem, com o maior código +1. Tentei de algumas formas e parei nessa, que dá o erro ORA-01732: data manipulation operation not legal in this view. DECLARE BEGIN FOR c_bens IN (SELECT * FROM bembens a WHERE EXISTS (SELECT * FROM bembens b WHERE a.ncodibens = b.ncodibens AND a.ncodienti <> b.ncodienti) ) LOOP UPDATE BEMBENS SET c_bens.ncodibens = (SELECT MAX(ncodibens)+1 FROM BEMBENS); END LOOP; END; ----- Original Message ----- From: Roberto Fernandes Sobrinho To: oracle_br@yahoogrupos.com.br Sent: Tuesday, March 04, 2008 12:24 PM Subject: Re: [oracle_br] Como faço para selecionar o primeiro/úlitmo registro de um select? Olá Amigo! Veja se Isso Resolve o seu problema! Este select retorna todos os codigos de itens que estão associados a mais de uma filial. * select ** *from *TABELA_BENS *a* *where exists *(*select *'*' *from *TABELA_BENS b *where *a.CODIBEM = b.CODIBEM * and *a.CODIFILI <> b.CODIFILI) Em 04/03/08, Diogo Lopez <[EMAIL PROTECTED]> escreveu: > > Olá, sou iniciante em banco de dados e tenho um dúvida. > Como faço para selecionar o primeiro/úlitmo registro de um select? > > O que eu quero é fazer o seguinte: > Tenho uma tabela de bens de empresa, onde um bem (PK) pertence somente à > uma filial. > Algo como isso: > > ==== TABELA_BENS======= > -- CODIBEM --- | -- CODIFILI > 1 | 1 > 2 | 1 > 3 | 2 > ... .... > Por algum problema desconhecido, a constraint da PK não foi criado, o que > acabou gerando uma tabela assim: > > ==== TABELA_BENS======= > -- CODIBEM --- | -- CODIFILI > 1 | 1 > 2 | 1 > 1 | 2 > > Eu quero tornar CODIBEM uma PK, para isso que atualizar os registros que > estao com o CODIBEM duplicados, dando um novo codigo pra eles (continuando a > sequência dos valores). > > Pensei em pegar o primeiro/úlimo registro de um "SELECT WHERE CODIBEM =1" > e dar um novo valor a ele baseado no MAX(CODIBEM) > > [As partes desta mensagem que não continham texto foram removidas] > > > -- Roberto Fernandes Sobrinho Deenvolvedor Oracle [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas]