Oracle
 sql >> Database >  >> RDS >> Oracle

Come gestire i sinonimi Oracle con Flyway 2.0.1?

Il modo migliore sarebbe qualificare il nome dello schema nell'applicazione.

Se ciò non è possibile e l'applicazione utilizza solo SQL (non PL/SQL) per accedere agli oggetti "Proprietario", è possibile evitare del tutto i sinonimi modificando lo schema predefinito in un trigger dopo l'accesso:

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

Tuttavia, è alquanto difficile comprendere che questa tecnica non riesce quando l'applicazione invia blocchi PL/SQL ("begin ... end;") al database. PL/SQL è compilato e quindi non può considerare lo schema corrente.