¿Cómo evitar el ORA-01779?

tema enviado por Arioco en ORACLE
tema iniciado el 19/02/2009
A ver que ideas se generan sobre el siguiente error: Se requiere realizar un UPDATE sobre una tabla con el valor de otra tabla, a continuación la instrucción: UPDATE ( SELECT est.vase_nu_estadillo AS valor, evs.vase_nu_seccion AS porcentaje FROM EstEstadillo est INNER JOIN EstValorSeccion evs ON ( evs.dni = est.dni AND evs.tifi_co_tipofiscalia = est.tifi_co_tipofiscalia AND evs.peri_fx_fiperiodo = est.peri_fx_fiperiodo AND evs.peri_fx_ffperiodo = est.peri_fx_ffperiodo AND evs.est_fx_fisubperiodo = est.est_fx_fisubperiodo AND evs.est_fx_ffsubperiodo = est.est_fx_ffsubperiodo AND evs.secc_co_seccion = 1 ) WHERE evs.vase_nu_seccion > 0 AND est.est_bo_mediafiscalia = 'Si' AND est.peri_fx_fiperiodo = TO_DATE('01/01/2008', 'DD/MM/YYYY') AND est.fisc_co_fiscalia = 3 ) SET valor = porcentaje Obtengo el error ORA-01779: no se puede modificar una columna que se corresponde con una tabla no reservada por clave El problema es que ya no se que intentar (que no sea emplear el mal visto HINT que se salta la comprobación) ya que es COMPLETAMENTE seguro que los SEIS campos clave de EstEstadillo y los SIETE campos clave de EstValorSeccion están en el apartado ON del INNER JOIN... la ultima idea que se me ha ocurrido es que el optimizador de ORACLE no tome en cuenta la constante 1 del septimo campo clave de la tabla EstValorSeccion... en cuyo caso no tengo idea de que hacer ya que esa constante es ABSOLUTAMENTE necesaria. Agradezco de antemano cualquier sugerencia