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]

Responder a