Errores Raros En Una Migración – Ora-04062

Errores Raros En Una Migración – Ora-04062

Vamos a ver un error que ocurrió en una migración al subir de una versión 10g a 11g, el error es el siguiente “Error ORA-04062: timestamp of procedure has been change” Este error se produce al ejecutar cualquier procedimiento o función en nuestra base de datos. ¿Cuál es el motivo de este error?

Es el parámetro REMOTE_DEPENDENCIES_MODE que al subir de versión no se dejo con el valor correcto.

La causa reside en cómo se manejan las dependencias entre objetos mediante el parámetro REMOTE_DEPENDENCIES_MODE.

Este parámetro tiene dos únicos valores posibles, TIMESTAMP o SIGNATURE. Ésta es la definición del parámetro según Oracle

Aquí el enlace a la página de Oracle

REMOTE_DEPENCIES_MODE

Es decir, cuando el valor es TIMESTAMP Oracle compara los instantes de compilación del procedimiento local y el remoto, y únicamente los ejecuta si ambos coinciden.

El valor SIGNATURE permite que el procedimiento se ejecute al considerarlo seguro, y evita la necesidad de recompilación.

Anuncio publicitario

Ajustes de privacidad

Por lo tanto, modificamos el valor del parámetro remote_dependencies_mode a SIGNATURE y podemos hacerlo en caliente ya que no requiere reinicio de la BBDD, atendiendo a su definición:

Sentencia para cambiar el parámetro es la siguiente

alter system set remote_dependencies_mode=signature Scope=Both;