Update em mais de uma tabela

4 respostas
java
D

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!

4 Respostas

D

up

J

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;
T

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.

D

em oracle nao da para fazer isso

Criado 7 de fevereiro de 2016
Ultima resposta 6 de abr. de 2016
Respostas 4
Participantes 3