sql >> Database >  >> RDS >> Oracle

Hoe om te gaan met Oracle-synoniemen met Flyway 2.0.1?

De beste manier is om de schemanaam in de toepassing te kwalificeren.

Als dat niet mogelijk is en de toepassing alleen SQL (niet PL/SQL) gebruikt om toegang te krijgen tot de "Owner"-objecten, kunt u synoniemen vermijden door het standaardschema te wijzigen in een trigger na aanmelding:

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

Het is echter enigszins moeilijk te begrijpen dat deze techniek faalt wanneer de toepassing PL/SQL-blokken ("begin ... einde;") naar de database stuurt. PL/SQL is gecompileerd en kan daarom geen rekening houden met het huidige schema.



  1. Hoe werkt de convert-functie van SQL bij het converteren van datetime naar float?

  2. Fout bij het instellen van de eerste repository in Pentaho Kettle

  3. Fout bij het maken van MySQL-trigger

  4. Geaggregeerde sleutel/waarde-paren uit een JSONB-veld afvlakken?