Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Wie behandelt man Oracle-Synonyme mit Flyway 2.0.1?

Der beste Weg wäre, den Schemanamen in der Anwendung zu qualifizieren.

Wenn dies nicht möglich ist und die Anwendung nur SQL (nicht PL/SQL) verwendet, um auf die "Owner"-Objekte zuzugreifen, können Sie Synonyme überhaupt vermeiden, indem Sie das Standardschema in einem After-Logon-Trigger ändern:

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

Es ist jedoch etwas schwer zu verstehen, dass diese Technik versagt, wenn die Anwendung PL/SQL-Blöcke ("begin ... end;") an die Datenbank sendet. PL/SQL ist kompiliert und kann daher das aktuelle Schema nicht berücksichtigen.