Kako onemogočiti sprožilec v Oracle

Kako Onemogociti Sprozilec V Oracle



Sprožilci baze podatkov ali na kratko sprožilci se nanašajo na shranjene procedure, ki se izvajajo kot odgovor na aktivnost dogodka znotraj danega objekta baze podatkov.

To se razlikuje od standardnih shranjenih procedur, ki zahtevajo eksplicitni priklic s strani uporabnika. Ker so sprožilci avtomatizirani, se sprožijo ali sprožijo, ko pride do navedenega dogodka, ne glede na stanje povezanega uporabnika ali strežnika.







Večina relacijskih zbirk podatkov podpira uporabo sprožilcev za izvajanje avtomatiziranih nalog, kot je preprečevanje neveljavnih transakcij, beleženje dogodkov, pridobivanje in beleženje statističnih podatkov o dostopu do tabele itd.



Ko je sprožilec ustvarjen, se vedno zažene, ko pride do povezanega dogodka. Vendar pa boste morda želeli začasno ali trajno preprečiti izvajanje sprožilca. Tu nastopi funkcija onemogočanja sprožilca.



Ta objava bo razpravljala o hitrih in enostavnih korakih za onemogočanje sprožilca v bazi podatkov Oracle. Če ste novi pri Oraclovih sprožilcih in bi radi vedeli, kako jih ustvariti, preverite naslednjo povezavo:





https://linuxhint.com/oracle-create-trigger

Ustvarjanje preskusnega sprožilca

Preden razpravljamo o metodah onemogočanja sprožilca, nastavimo vzorčni sprožilec za namene predstavitve.



OPOMBA : Ta razdelek ne obravnava, kako definirati ali uporabiti sprožilce baze podatkov.

Želimo ustvariti sprožilec, ki beleži dejavnost uporabnika po operaciji brisanja. Denimo, da imamo tabelo sample_data s prikazanimi informacijami:

Najprej moramo ustvariti tabelo, v katero bomo shranili dnevnike za vsako dejavnost brisanja.

Shema tabele je naslednja:

ustvari tabelo sample_data_logs(
ID številka,
first_name varchar2(50),
ip_naslov varchar2(20),
btc_naslov varchar2(50),
kreditna_kartica varchar2(50),
identifikator varchar2(40),
delete_date datum,
deleted_by varchar2(20)
);

Nato moramo definirati sprožilec, ki se izvede po dogodku brisanja. Definicija sprožilca je podana na naslednji način:

ustvarite ali zamenjajte sprožilec log_user
po brisanju
na vzorčnih_podatkih
za vsako vrstico
izjaviti
dejanje_uporabniško ime varchar2(20);
začeti
izberite uporabnika v action_username iz dual;
vstavite v sample_data_logs
vrednosti (:OLD.id,
:STARO.ime,
:OLD.ip_naslov,
:OLD.btc_naslov,
:OLD.kreditna_kartica,
:OLD.identifikator,
sysdate,
dejanje_uporabniško ime);
konec;

Za preizkus sprožilca izvedimo operacijo brisanja iz tabele sample_data, kot je prikazano:

izbriši iz sample_data, kjer je id = 1;

Končno lahko preverimo tabelo dnevnikov, da zagotovimo, da je bila operacija brisanja zabeležena:

izberite * iz sample_data_logs;

Izhod:

Kot vidimo, ima tabela vnos prejšnjih podatkov pred izbrisom ter uporabniško ime, ki je opravilo brisanje in čas izbrisa.

V naslednjih razdelkih bomo prikazali, kako onemogočiti prejšnji sprožilec. Preden to storite, se prepričajte, da vaš ciljni sprožilec deluje in imate ustrezna dovoljenja, da ga omogočite ali onemogočite.

Onemogoči sprožilec z uporabo PL/SQL

Prva in najpreprostejša metoda za onemogočanje sprožilca je uporaba stavka SQL. Na srečo nam Oracle ponuja stavek ALTER TRIGGER, katerega sintaksa je naslednja:

ALTER TRIGGER trigger_name DISABLE;

Na primer, če želite onemogočiti sprožilec log_user, ki smo ga ustvarili prej, lahko zaženemo naslednje:

spremeni sprožilec log_user onemogoči;

Ko se izvede, sprožilec ne bo več hranil kopije starih podatkov in uporabnika, ki je izvedel izbris, kot je prikazano v nadaljevanju:

izbriši iz sample_data, kjer je id = 2;

Preverite dnevnike:

izberite * iz sample_data_logs;

Izhod:

Kot vidimo, imamo še vedno samo eno ploščo.

Onemogočite sprožilec s programom SQL Developer

S pripomočkom SQL Developer lahko onemogočimo sprožilec v grafičnem vmesniku. Začnite s prijavo v SQL Developer.

Pomaknite se do razdelka »Sprožilci«:

Razširite imenik sprožilcev in poiščite sprožilec, ki ga želite onemogočiti. Z desno miškino tipko kliknite ime sprožilca in izberite »Onemogoči«.

Potrdite operacijo »Onemogoči« in kliknite »Uporabi«.

Ko je onemogočen, Oracle obarva sprožilec sivo, kar pomeni, da je neaktiven.

Zaključek

Ta članek je raziskal, kako onemogočiti sprožilec Oracle z uporabo stavkov PL/SQL in pripomočka SQL Developer.