[RESOLVIDO]Dúvida de Update com Join no Oracle

Olá pessoal,

Preciso fazer o seguinte select no ORACLE, mas não to conseguindo:

update (select * 
from admin.camada c 
inner join ADMIN.objeto_atributo o ON o.column_name = 'COD_REDE'
where c.possui_filtro is null) t
set possui_filtro = 'FILTRA_REDE'

Dá o seguinte erro:

Erro ao iniciar na linha 27 no comando:
update (select * 
from admin.camada c 
inner join ADMIN.objeto_atributo o ON o.column_name = 'COD_REDE'
where c.possui_filtro is null) t
set possui_filtro = 'FILTRA_REDE'
Erro na Linha de Comando:31 Coluna:4
Relatório de Erro:
Erro de SQL: ORA-01779: não é possível modificar uma coluna que mapeie uma tabela não preservada pela chave
01779. 00000 -  "cannot modify a column which maps to a non key-preserved table"
*Cause:    An attempt was made to insert or update columns of a join view which
           map to a non-key-preserved table.
*Action:   Modify the underlying base tables directly.

Alguem tem idéia de como fazer esse update no Oracle, usando o JOIN?

Obrigado,

Cara, vc ta usando inner join, porém ñ estou vendo o relacionamento entre as tabelas =x

Vc ta fazendo o join do campo column_name com o valor ‘COD_REDE’

Faz o join entre campos de ambas as tabelas, ou coloca a estrutura delas aqui para q possamos te ajudar :wink:

Consegui arrumar o update, para rodar no oracle, ficando da seguinte forma:

UPDATE  admin.camada  SET  possui_filtro = 'FILTRA_REDE'  WHERE  cod_camada IN (
select cod_camada
from admin.camada c 
JOIN admin.objeto_atributo o ON o.cod_objeto = c.cod_objeto
where o.column_name = 'COD_REDE'  AND  c.possui_filtro is null AND c.filtro is not null AND UPPER(c.filtro) like '%COD_CATEGORIA%'
)

Valeu kamikase_x.