Bom dia Pessoal,
Estou com uma dúvida referente ao comando MERGE entre duas tabelas que estão servindo para integração de sistemas. Tenho a seguinte situação:
1- Os registros que estão em uma tabela chama AUTORIZADOS_RP e que não estão na tabela USUARIOS deverão ser inseridos na tabela USUARIOS ( Até aqui tudo bem )
2- Os registros que estão na tabela USUARIOS e não estão na tabela AUTORIZADOS_RP deverão ter seu status alterado para "EXCLUIDO".
Pelo que vi no comando MERGE, você consegue fazer a comparação do conteudo de uma tabela com outra (tabela1 -> tabela2), porém preciso fazer a comparação nas 2 vias(tabela1 <-> tabela2). É possível contemplar as 2 situações em um comando ?
Comando MERGE
-
- Rank: Estagiário Pleno
- Mensagens: 6
- Registrado em: Qui, 26 Jan 2012 8:18 am
-
- Moderador
- Mensagens: 641
- Registrado em: Seg, 03 Set 2007 3:26 pm
- Localização: Fortaleza - CE
att,
Daniel N.N.
Daniel N.N.
Não vejo forma do MERGE lhe atender nesta situação.
Acredito que você deva se utilizar de dois comandos e sem uso do merge.
1-
2-
Acredito que você deva se utilizar de dois comandos e sem uso do merge.
1-
INSERT INTO USUARIOS
SELECT
FROM AUTORIZADOS_RP
WHERE NOT EXISTS( SELECT 1 FROM USUARIOS
WHERE USUARIOS.CHAVE = AUTORIZADOS_RP.CHAVE);
UPDATE USUARIOS
SET STATUS = "EXCLUIDO"
WHERE NOT EXISTS( SELECT 1 FROM AUTORIZADOS_RP
WHERE AUTORIZADOS_RP.CHAVE = USUARIOS.CHAVE);
-
- Rank: Programador Júnior
- Mensagens: 27
- Registrado em: Dom, 29 Jan 2012 5:28 pm
- Localização: Rio de Janeiro
Oi amigo, boa noite.
Como o DanielInn disse, pode-se usar subqueries ou também pode-se utilizar o camando "minus" para este caso, dessa forma você saberá a diferença de registros entre uma tabela e outra e executar o comando insert ou update com o retorno da query.
Como o DanielInn disse, pode-se usar subqueries ou também pode-se utilizar o camando "minus" para este caso, dessa forma você saberá a diferença de registros entre uma tabela e outra e executar o comando insert ou update com o retorno da query.
-
- Informação
-
Quem está online
Usuários navegando neste fórum: Nenhum usuário registrado e 19 visitantes