sql >> Base de Datos >  >> RDS >> Oracle

¿Cómo manejar los sinónimos de Oracle con Flyway 2.0.1?

La mejor manera sería calificar el nombre del esquema en la aplicación.

Si eso no es posible y la aplicación usa solo SQL (no PL/SQL) para acceder a los objetos "Propietario", puede evitar los sinónimos cambiando el esquema predeterminado en un disparador posterior al inicio de sesión:

create or replace trigger USERX.a_logon_USERX
after logon on USERX
BEGIN
  EXECUTE IMMEDIATE ('ALTER SESSION SET current_schema=standard');
END;

Sin embargo, es algo difícil comprender que esta técnica falla cuando la aplicación envía bloques PL/SQL ("begin ... end;") a la base de datos. PL/SQL está compilado y, por lo tanto, no puede considerar el esquema actual.