Update em mais de uma tabela

Ola, seguinte tenho um problema.

preciso fazer um update em tres tabelas que tem um relacionamento entre elas. O relacionamento é no campo circuit, e todas as tabelas possuem status, e preciso corrigir esse status, porem passando como parametro um item q so possue em uma tabela.

Fiz algo parecido com isso.

update tab1 t1 inner join tab2 t2 on t1.circuit = t2.circuit inner join tab3 t3 on t1.circuit = t3.circuit set t1.status = ‘5’, t2.status = '5, t3.status = ‘5’ where t1.document = ‘1111’;

porem esta dando erro de ORA-00971: missing SET keyword

me ajudem por favor!

up

Estou um pouco enferrujado no SQL, mas pelo que pesquisei não tem como fazer update com inner join no Oracle. Tenta usar um cursor, como no exemplo abaixo:

for r in (select t1.circuit from tab1 t1 where t1.document = '1111') loop

    update tab1 set tab1.status = '5' where tab1.circuit = r.circuit;
    update tab2 set tab2.status = '5' where tab2.circuit = r.circuit;
    update tab3 set tab3.status = '5' where tab3.circuit = r.circuit;

end loop;

amigo, seguir a linha aqui em um banco de teste que tenho para duas tabelas que possuem um join. acredito que so voce modificar para 3 tabelas que de certo.

update cliente c, venda v set c.cli_nome = 'jorge pereira', v.ven_cli_id = 1 where c.cli_id = 1 and v.ven_cli_id = 2;

atualizer duas tabelas uma cliente e uma venda
modifiquei 1 campo em cada tabela na de cliente o campo nome e na de venda a chave estrangeira. e no where disse o que queria que mudasse.

ver se deu certo para você espero ter ajudado.

o erro que da em seu codigo esta dizendo que esta faltando o campo para setar, até onde eu sei, update tem que ter um set, caso não da este erro.

1 curtida

em oracle nao da para fazer isso