Vytváření odkazu na databázi za chodu se zdá jako neobvyklá věc; vaše schéma by mělo být obecně statické a stabilní. Pokud však musíte, bylo by jednodušší zabalit aktualizaci a odkaz do procedury, nebo jen vydat dvě prohlášení – pravděpodobně vše, co aktualizaci provede, je tak jako tak docela kontrolováno, jinak byste se museli vypořádat s více lidmi, kteří spouštějí toto vícenásobné časy, což by byl ještě větší průšvih.
Pravděpodobně to můžete provést přidáním PRAGMA autonomous_transaction;
k vašemu spouštěči, jak je ukázáno u podobného problému (vytvoření zobrazení místo odkazu) v této odpovědi , ale v tuto chvíli nejsem schopen to otestovat.
create or replace
TRIGGER CreateLinkTrigger
after UPDATE of Year ON tableInit
for each row
DECLARE
add_link VARCHAR2(200);
PRAGMA autonomous_transaction;
BEGIN
...
Můžete také nastavit spouštěč, aby odeslal asynchronní úlohu k provedení DDL, jak je popsáno v této odpovědi , a další příklad je v této odpovědi
, kde byste změnili anonymní blok úlohy tak, aby se vaše execute immediate
.
Pravděpodobně by bylo lepší vytvořit odkazy na několik příštích let předem během období údržby, podle plánu nebo z postupu; spíše než se snažit přidružit změnu schématu ke změně dat.