Jak zakázat spouštěč v Oracle

Jak Zakazat Spoustec V Oracle



Databázové spouštěče nebo zkráceně spouštěče odkazují na uložené procedury, které se spouštějí jako odpověď na aktivitu události v rámci daného databázového objektu.

To se liší od standardních uložených procedur, které vyžadují explicitní vyvolání od uživatele. Protože jsou spouštěče automatické, spouštějí se nebo spouštějí, když nastane zadaná událost, bez ohledu na připojeného uživatele nebo stav serveru.







Většina relačních databází podporuje použití spouštěčů k provádění automatizovaných úkolů, jako je zabránění neplatným transakcím, protokolování událostí, načítání a zaznamenávání statistik přístupu k tabulce a další.



Jakmile je spouštěč vytvořen, spustí se vždy, když dojde k související události. Můžete však chtít dočasně nebo trvale zabránit spuštění spouštěče. Zde vstupuje do hry funkce deaktivace spouštění.



Tento příspěvek bude diskutovat o rychlých a jednoduchých krocích pro deaktivaci spouštěče v databázi Oracle. Pokud jste se spouštěči Oracle noví a chtěli byste vědět, jak je vytvořit, podívejte se na následující odkaz:





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

Vytvoření testovacího spouštěče

Než probereme metody deaktivace spouštěče, nastavíme ukázkový spouštěč pro demonstrační účely.



POZNÁMKA : Tato část se nezabývá tím, jak definovat nebo používat spouštěče databáze.

Chceme vytvořit spouštěč, který zaznamená aktivitu uživatele po operaci odstranění. Předpokládejme například, že máme tabulku sample_data s informacemi, jak je uvedeno:

Nejprve musíme vytvořit tabulku, kde ukládáme protokoly pro každou aktivitu mazání.

Schéma tabulky je následující:

vytvořit tabulku sample_data_logs(
identifikační číslo,
jméno varchar2(50),
ip_address varchar2(20),
btc_address varchar2(50),
kreditní_karta varchar2(50),
identifikátor varchar2(40),
datum odstranění_datum,
delete_by varchar2(20)
);

Dále musíme definovat spouštěč, který se spustí po události delete. Definice spouštěče je poskytována takto:

vytvořit nebo nahradit trigger log_user
po smazání
na sample_data
pro každý řádek
prohlásit
action_username varchar2(20);
začít
vybrat uživatele do action_username z dual;
vložit do sample_data_logs
hodnoty (:OLD.id,
:OLD.first_name,
:OLD.ip_address,
:OLD.btc_address,
:OLD.credit_card,
:STARÝ.identifikátor,
sysdate,
akční_uživatelské jméno);
konec;

Chcete-li otestovat spouštěč, proveďte operaci odstranění z tabulky sample_data, jak je znázorněno:

smazat z ukázkových_dat kde id = 1;

Nakonec můžeme zkontrolovat tabulku protokolů, abychom se ujistili, že operace odstranění byla zaznamenána:

vyberte * z protokolů ukázkových_dat;

Výstup:

Jak vidíme, tabulka obsahuje údaje o předchozích datech před smazáním a také uživatelské jméno, které provedlo smazání, a čas smazání.

V následujících částech si ukážeme, jak deaktivovat předchozí trigger. Než tak učiníte, ujistěte se, že váš cílový trigger je funkční a máte dostatečná oprávnění k jeho aktivaci nebo deaktivaci.

Zakázat spouštěč pomocí PL/SQL

První a nejpřímější metodou deaktivace spouštěče je použití příkazu SQL. Naštěstí nám Oracle poskytuje příkaz ALTER TRIGGER, jehož syntaxe je poskytnuta následovně:

ALTER TRIGGER název_spouštěče DISABLE;

Chcete-li například zakázat spouštěč log_user, který jsme vytvořili dříve, můžeme spustit následující:

alter trigger log_user disable;

Po spuštění již spouštěč nebude uchovávat kopii starých dat a uživatele, který provedl smazání, jak je uvedeno níže:

smazat z ukázkových_dat kde id = 2;

Zkontrolujte protokoly:

vyberte * z protokolů ukázkových_dat;

Výstup:

Jak vidíme, stále máme jen jeden záznam.

Zakázat spouštěč pomocí SQL Developer

K deaktivaci triggeru v grafickém rozhraní můžeme použít nástroj SQL Developer. Začněte přihlášením do SQL Developer.

Přejděte do sekce „Spouštěče“:

Rozbalte adresář spouštěčů a vyhledejte spouštěč, který chcete deaktivovat. Klikněte pravým tlačítkem na název spouštěče a vyberte „Zakázat“.

Potvrďte operaci „Zakázat“ a klikněte na „Použít“.

Po deaktivaci Oracle spoušť zešedne, což znamená, že je neaktivní.

Závěr

Tento článek se zabýval tím, jak deaktivovat spouštěč Oracle pomocí příkazů PL/SQL a nástroje SQL Developer.