Adalberto,

Eu tenho o hábito de dar um select count(*) na tabela para ver se existe o 
registro, se retornar 1 você dá update, se retornar 0 você dá insert.
Não sei se há algum jeito mais pratico.

Fernanda Zeca

----- Original Message ----- 
From: "Adalberto Sousa Monteiro" <[EMAIL PROTECTED]>
To: <oracle_br@yahoogrupos.com.br>
Sent: Wednesday, February 15, 2006 11:25 AM
Subject: [oracle_br] Se o registro existir UPDATE se não INSERT.


Alguém poderia me dar uma ajudinha .....
É o seguinte, tenho a procedure abaixo, porém como faço para atualizar os 
registros que vierem no SELECT e que ja existe na tabela VIAGEM ??

Gostaria de saber como faço algo do tipo:
[          Found VIAGEM ] Update .......
[   Not Found VIAGEM ] Insert ........

+- isso .. rs rs, claro que não com os comandos assim, apenas essa idéia.
Eu precisaria fazer 1° o Select e abrir um cursor e dentro dele verificar se 
existe o registro na tabela viagem ?
Existindo executo um comando de update e não existindo um de insert ?

Ou teria uma forma mais pratica e até mesmo com menos volta ?

Valeu
Adalberto.
create or replace procedure proc_viagem (vs_datai String, vs_dataf String)
as
begin
           insert into VIAGEM ( CD_EMPRESA,
                                               CD_FILIAL,
                                               CD_FILVIA,
                                               NR_VIAGEM,
                                               DT_EMISSAO,
                                               CD_FROTA,
                                               CD_CARRETA,
                                               CD_MOTORISTA,
                                               CD_FROTISTA,
                                               CD_TPOPERACAO,
                                               CD_TPVIAGEM,
                                               QT_NF,
                                               FL_SITUACAO,
                                               DT_CADASTRO
                                               )
                                               (      select 1,
                                                                 1,
                                                                 viagem.codfil,
                                                                 viagem.numero,
                                                                 viagem.dtemis,
                                                                 viagem.codcav,
                                                                 viagem.codcar,
                                                                 viagem.codmot,
                                                                 viagem.codfro,
                                                                 viagem.tpoper,
                                                                 viagem.tpviag,
                                                                 viagem.qtdnfs,
                                                                 viagem.situac,
                                                                 sysdate
                                                         from 
logistic.afa037 viagem
                                                       where viagem.dtemis 
between vs_datai and vs_dataf
                                               );
           commit;

           exception
           when others then
           rollback;
end;


[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/
--------------------------------------------------------------------------------------------------------------------------__________________________________________________________________
Este Grupo recebe o apoio da SQL Magazine - www.devmedia.com.br/sqlmagazine


Links do Yahoo! Grupos









-- 
No virus found in this incoming message.
Checked by AVG Free Edition.
Version: 7.0.375 / Virus Database: 267.15.7/259 - Release Date: 13/2/2006



        

        
                
_______________________________________________________ 
Yahoo! doce lar. Faça do Yahoo! sua homepage. 
http://br.yahoo.com/homepageset.html 





--------------------------------------------------------------------------------------------------------------------------
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/ 
--------------------------------------------------------------------------------------------------------------------------__________________________________________________________________
Este Grupo recebe o apoio da SQL Magazine - www.devmedia.com.br/sqlmagazine 

 
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