sql >> Databasteknik >  >> RDS >> Oracle

framåt cross edition triggers i R12.2

Introduktion

I det här avsnittet försöker vi förklara hanteringen av tabelldata i R12.2 online-patchning med oracle-utgåvan baserad omdefinition (framåt utlösare av flera utgåvor)

Anta att patchen måste ändra kolumnen Beskrivning från blandade versaler till versaler

Tabell A har kolumnen Befintlig beskrivning har värden på (röd, ORANGE…)
Kravet från patchen är
Beskrivningskolumnen har versaler på (RED, ORANGE…)

Steg som gjordes i Online Patching
•Skapa en ny kolumn Beskrivning#1  i tabellen när du korrigerar tabellen
•Skapa patch Editioning Visa kartor:
KÖR – Beskrivning => Beskrivning
PATCH – Beskrivning => Beskrivning#1

Nu är nästa steg att fylla i beskrivning #1  från beskrivning #  vilket uppnås med hjälp av utlösare för flera utgåvor framåt

Vad utlöser Forward Cross-utgåvan?

(1)Forward cross edition-triggers är databastriggers som fungerar i olika versioner.

(2)Vidareutlösare över flera utgåvor används för att synkronisera data som en del av online-patchprocessen. En utlösare för en framåtriktad utgåva definierar en transformation, vilket är en regel för att transformera en gammal rad till en eller flera nya rader. En gammal rad är en rad med data i representationen före uppgraderingen. En ny rad är en rad med data i representationen efter uppgraderingen. Namnet på utlösaren hänvisar till själva utlösaren och till den transformation som utlösaren definierar.

(3)När patchen appliceras synkroniserar den data från blandade versaler till versaler. Nu fylls de dataändringar som gjorts från patchning till cutover-tid till en ny kolumn av utlösare för framåtriktade utgåvor

(4) De tillhandahåller logiken för att synkronisera och transformera data mellan lagringskolumner för körnings- och patch-utgåvor

(5) Sammanfattningsvis används dessa för att uppgradera både befintliga data och pågående ändringar som sker medan körversionen används.

(6)Den tillåter Run Edition-koden att signalera att en datauppgradering krävs och aktiveras som svar på en infogning, uppdatering av tabellen
(7)I det här specifika fallet uppgraderar den kolumnen "Beskrivning" från blandad till versaler
Körande applikation ser fortfarande kolumndata som blandade skiftlägen
Lättad applikation ser kolumndata som versaler

Trigger Definition skulle vara så här

CREATE OR REPLACE EMPLOYEE_FET
BEFORE INSERT OR UPDATE
ON EMPLOYEE
FOR EACH ROW
FORWARD CROSSEDITION
DISABLE
BEGIN
:NEW.description#1 := Upper(:NEW.description);
END EMPLOYEE_FET;

Några punkter för ungefär utlösare av Forward-versionen

  • de är Crossedition-utlösare är tillfälliga – du släpper dem efter att du har gjort de omstrukturerade tabellerna tillgängliga för alla användare.
  • En crossedition-utlösare måste definieras i en tabell, inte i en vy.
  • En crossedition-utlösare måste vara en DML-utlösare (enkel eller sammansatt).
  • DML-satsen i en utlösarkropp för crossedition kan antingen vara en statisk SQL-sats eller en inbyggd dynamisk SQL-sats
  • En crossedition-utlösare är framåt om du inte anger REVERSE. (Det är valfritt att ange FRAMÅT.)

Hoppas du förstår logiken i detta. Låt mig veta din feedback

Relaterade artiklar
hur man kontrollerar triggers på en tabell i Oracle :Kolla in Hur man kontrollerar triggerstatus i Oracle, hur man aktiverar/inaktiverar trigger, hur man hittar triggerdefinitionen, hur man hittar alla triggers
Oracle EBS Revision :Hur man ställer in Oracle EBS Auditing, hur man lägger till tabeller i revisionsgrupp, hur man väljer kolumn för granskning, revisionsspår uppdatering samtidig begäran
oracle EBS-lösenordsutgång :Användbara frågor om oracle EBS-lösenordsutgång , Hur man stoppar Framtvinga återställning av lösenord vid skapande av användarkonto i Oracle EBS
Oracle R12.2 Architecture :Den här sidan innehåller Oracle R12.2 Architecture-information, teknikstackinformation, en viktig skillnad från tidigare utgåvor
https://docs .oracle.com/cd/E11882_01/appdev.112/e41502/adfns_editions.htm#ADFNS99912


  1. Mest effektiva T-SQL sättet att vaddera en varchar till vänster till en viss längd?

  2. Hur får man tabelldefinition i Oracle?

  3. Migrera från MySQL till PostgreSQL - Vad du bör veta

  4. Hur MAKE_SET()-funktionen fungerar i MySQL