Kako onemogućiti okidač u Oracleu

Kako Onemoguciti Okidac U Oracleu



Okidači baze podataka, ili skraćeno okidači, odnose se na pohranjene procedure koje se izvode kao odgovor na aktivnost događaja unutar određenog objekta baze podataka.

Ovo se razlikuje od standardnih pohranjenih procedura, koje zahtijevaju eksplicitno pozivanje od strane korisnika. Budući da su okidači automatizirani, pokreću se ili aktiviraju kada se dogodi navedeni događaj, bez obzira na stanje povezanog korisnika ili poslužitelja.







Većina relacijskih baza podataka podržava korištenje okidača za izvođenje automatiziranih zadataka kao što su sprječavanje nevažećih transakcija, bilježenje događaja, dohvaćanje i snimanje statistike pristupa tablici i više.



Jednom kada je okidač kreiran, uvijek se pokreće kad god se pojavi pridruženi događaj. Međutim, možda ćete htjeti privremeno ili trajno spriječiti izvršavanje okidača. Ovdje dolazi do izražaja značajka onemogućavanja okidača.



Ovaj će post raspravljati o brzim i jednostavnim koracima za onemogućavanje okidača unutar Oracle baze podataka. Ako ste novi u Oracle okidačima i želite znati kako ih izraditi, provjerite sljedeću vezu:





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

Stvaranje testnog okidača

Prije nego što raspravljamo o metodama onemogućavanja okidača, postavimo ogledni okidač u svrhu demonstracije.



BILJEŠKA : Ovaj odjeljak ne pokriva kako definirati ili koristiti okidače baze podataka.

Želimo stvoriti okidač koji bilježi aktivnost korisnika nakon operacije brisanja. Na primjer, pretpostavimo da imamo tablicu sample_data s prikazanim informacijama:

Prvo moramo stvoriti tablicu u koju ćemo pohraniti zapise za svaku aktivnost brisanja.

Shema tablice je sljedeća:

kreiraj tablicu sample_data_logs(
ID broj,
first_name varchar2(50),
ip_adresa varchar2(20),
btc_adresa varchar2(50),
kreditna_kartica varchar2(50),
identifikator varchar2(40),
delete_date datum,
deleted_by varchar2(20)
);

Zatim moramo definirati okidač koji se izvršava nakon događaja brisanja. Definicija okidača navedena je na sljedeći način:

stvoriti ili zamijeniti okidač log_user
nakon brisanja
na uzorku_podataka
za svaki red
proglasiti
radnja_korisničko ime varchar2(20);
početi
odaberite korisnika u action_username iz dual;
umetnite u sample_data_logs
vrijednosti (:OLD.id,
:STARO.ime,
:STARA.ip_adresa,
:OLD.btc_adresa,
:OLD.kreditna_kartica,
:OLD.identifikator,
sysdate,
korisničko_ime_radnje);
kraj;

Da testiramo okidač, izvršimo operaciju brisanja iz tablice sample_data kao što je prikazano:

brisanje iz sample_data gdje je id = 1;

Konačno, možemo provjeriti tablicu zapisa kako bismo bili sigurni da je operacija brisanja zabilježena:

odaberite * iz sample_data_logs;

Izlaz:

Kao što vidimo, tablica ima unos prethodnih podataka prije brisanja, kao i korisničko ime koje je izvršilo aktivnost brisanja i vrijeme brisanja.

U sljedećim odjeljcima pokazat ćemo kako onemogućiti prethodni okidač. Prije nego što to učinite, provjerite je li vaš ciljni okidač funkcionalan i imate li dovoljno dopuštenja da ga omogućite ili onemogućite.

Onemogućite okidač pomoću PL/SQL

Prva i najjednostavnija metoda onemogućavanja okidača je korištenje SQL naredbe. Srećom, Oracle nam daje naredbu ALTER TRIGGER čija je sintaksa sljedeća:

ALTER TRIGGER trigger_name DISABLE;

Na primjer, da onemogućimo okidač log_user koji smo ranije stvorili, možemo pokrenuti sljedeće:

promijeniti okidač log_user onemogućiti;

Nakon što se izvrši, okidač više neće čuvati kopiju starih podataka i korisnika koji je izvršio brisanje kao što je prikazano u nastavku:

brisanje iz sample_data gdje je id = 2;

Provjerite zapise:

odaberite * iz sample_data_logs;

Izlaz:

Kao što vidimo, još uvijek imamo samo jedan zapis.

Onemogućite okidač pomoću SQL Developera

Možemo koristiti uslužni program SQL Developer da onemogućimo okidač u grafičkom sučelju. Započnite prijavom u SQL Developer.

Dođite do odjeljka 'Okidači':

Proširite direktorij okidača i pronađite okidač koji želite onemogućiti. Desnom tipkom miša kliknite naziv okidača i odaberite 'Onemogući'.

Potvrdite operaciju 'Onemogući' i kliknite 'Primijeni'.

Nakon što je onemogućen, Oracle zasivljuje okidač, što znači da je neaktivan.

Zaključak

Ovaj je članak istražio kako onemogućiti Oracle okidač pomoću PL/SQL naredbi i uslužnog programa SQL Developer.