Pular para o conteúdo

Fóruns SQL e PL/SQL Update em vários registros com dados diferentes Responder a: Update em vários registros com dados diferentes

#143480
Jean Ricardo de O Ferreira
Participante

    Uma possível solução para esse update poderia ser:

    update TABELA A set
    ( A.CAMPO_1
    , A.CAMPO_2
    , A.CAMPO_3
    , A.CAMPO_4
    , A.CAMPO_5
    , A.CAMPO_6 ) = ( select B.CAMPO_1
    , B.CAMPO_2
    , B.CAMPO_3
    , B.CAMPO_4
    , B.CAMPO_5
    , B.CAMPO_6
    from TABELA B
    where B.CAMPO_CONDICAO_1 = <VARIAVEL_1>
    AND B.CAMPO_CONDICAO_2 = <VARIAVEL_2>
    and B.CAMPO_CONDICAO_3 = <VARIAVEL_3>
    and B.CAMPO_CONDICAO_4 = <VARIAVEL_4>
    and B.CAMPO_CONDICAO_5 = to_date(<VARIAVEL_5>, ‘dd/mm/yyyy’)

    and A.CAMPO_CHAVE_1 = B.CAMPO_CHAVE_1
    and A.CAMPO_CHAVE_2 = B.CAMPO_CHAVE_2
    and A.CAMPO_CHAVE_3 = B.CAMPO_CHAVE_3
    and A.CAMPO_CHAVE_4 = B.CAMPO_CHAVE_4
    and A.CAMPO_CHAVE_5 = B.CAMPO_CHAVE_5
    and A.CAMPO_CHAVE_6 = B.CAMPO_CHAVE_6
    and A.CAMPO_CHAVE_7 = B.CAMPO_CHAVE_7
    and A.CAMPO_CHAVE_8 = B.CAMPO_CHAVE_8
    and A.CAMPO_CHAVE_9 = B.CAMPO_CHAVE_9
    )
    where A.CAMPO_CONDICAO_1 = <VARIAVEL_1>
    AND A.CAMPO_CONDICAO_2 = <VARIAVEL_2>
    and A.CAMPO_CONDICAO_3 = <VARIAVEL_3>
    and A.CAMPO_CONDICAO_4 = <VARIAVEL_4>
    and A.CAMPO_CONDICAO_5 = to_date(<VARIAVEL_5>, ‘dd/mm/yyyy’)
    AND A.CAMPO_CONDICAO_6 is null