Jak wyłączyć spust w Oracle

Jak wyłączyć spust w Oracle

W skrócie wyzwalacze bazy danych lub czynniki wyzwalające, patrz procedury przechowywane, które są wykonywane jako odpowiedź na działanie zdarzenia w danym obiekcie bazy danych.

Różni się to od standardowych procedur składowanych, które wymagają wyraźnego wywołania od użytkownika. Ponieważ wyzwalacze są zautomatyzowane, są one wyzwalane lub zwolnione, gdy nastąpi określone zdarzenie, niezależnie od podłączonego stanu użytkownika lub serwera.

Większość relacyjnych baz danych obsługuje za pomocą wyzwalaczy do wykonywania zautomatyzowanych zadań, takich jak zapobieganie nieprawidłowym transakcjom, rejestrowanie zdarzeń, pobieranie i rejestrowanie statystyk dostępu do tabeli.

Po utworzeniu spustu zawsze działa, gdy nastąpi powiązane zdarzenie. Jednak możesz chcieć tymczasowo lub trwale zapobiec wykonywaniu wyzwalacza. W tym miejscu wchodzi funkcja Wyłączania wyzwalacza.

W tym poście omówi się na temat szybkich i łatwych kroków w celu wyłączenia spustu w bazie danych Oracle. Jeśli jesteś nowy w Oracle Triggers i chciałbyś wiedzieć, jak go utworzyć, sprawdź następujący link:

https: // linuxhint.com/Oracle-Create Trigger

Tworzenie spustu testowego

Zanim omówimy metody wyłączania spustu, skonfigurujmy próbkę spust do celów demonstracyjnych.

NOTATKA: Ta sekcja nie obejmuje sposobu zdefiniowania lub korzystania z wyzwalaczy bazy danych.

Chcemy utworzyć spust, który rejestruje aktywność użytkownika po operacji usuwania. Załóżmy na przykład, że mamy tabelę samp_data z informacją, jak pokazano:

Najpierw musimy utworzyć tabelę, w której przechowujemy dzienniki dla każdego czynności usuwania.

Schemat tabeli jest następujący:

Utwórz tabelę próbki_data_logs (
numer identyfikacyjny,
First_name varchar2 (50),
ip_address varchar2 (20),
btc_address varchar2 (50),
credit_card varchar2 (50),
identyfikator varchar2 (40),
Data delete_date,
usunted_by varchar2 (20)
);

Następnie musimy zdefiniować spust wykonany po zdarzeniu Usuń. Definicja wyzwalacza jest podana następująco:

Utwórz lub wymień log_user Trigger
po usunięciu
na próbki_data
dla każdego wiersza
ogłosić
Action_username varchar2 (20);
zaczynać
Wybierz Użytkownika do Action_Username z Dual;
Wstaw do próbki_data_logs
Wartości (: stare.ID,
:STARY.imię,
:STARY.adres IP,
:STARY.BTC_ADDRESS,
:STARY.karta kredytowa,
:STARY.identyfikator,
SYSDATE,
Action_username);
koniec;

Aby przetestować spust, wykonajmy operację Usuń z tabeli Sample_Data, jak pokazano:

usuń z próbki_data, gdzie id = 1;

Na koniec możemy sprawdzić tabelę dzienników, aby upewnić się, że operacja usunięcia została zarejestrowana:

Wybierz * z próbki_data_logs;

Wyjście:

Jak widzimy, w tabeli zawiera wpis poprzednich danych przed usunięciem, a także nazwa użytkownika, która wykonała aktywność usuwania i czas usunięcia.

W poniższych sekcjach zademonstrujemy, jak wyłączyć poprzedni spust. Zanim to uczyń, upewnij się, że wyzwalacz docelowy jest funkcjonalny i masz wystarczające uprawnienia do włączenia lub wyłączenia.

Wyłącz spust za pomocą PL/SQL

Pierwszą i najprostszą metodą wyłączania spustu jest użycie instrukcji SQL. Na szczęście Oracle zapewnia nam alter Trigger Instrukcję, której składnię jest podana w następujący sposób:

Alter Trigger Trigger_name Disable;

Na przykład, aby wyłączyć wyzwalacz log_user, który utworzyliśmy wcześniej, możemy uruchomić następujące:

alter Trigger log_user Wyłącz;

Po wykonaniu wyzwalacz nie będzie już przechowywać kopii starych danych i użytkownika, który wykonał usunięcie, jak pokazano następująco:

usuń z próbki_data, gdzie id = 2;

Sprawdź dzienniki:

Wybierz * z próbki_data_logs;

Wyjście:

Jak widzimy, nadal mamy tylko jeden rekord.

Wyłącz spust za pomocą programisty SQL

Możemy użyć narzędzia SQL Developer, aby wyłączyć spust w interfejsie graficznym. Zacznij od zalogowania się do programisty SQL.

Przejdź do sekcji „wyzwalacze”:

Rozwiń katalog Triggers i zlokalizuj wyzwalacz, który chcesz wyłączyć. Kliknij prawym przyciskiem myszy nazwę wyzwalacza i wybierz „Wyłącz”.

Potwierdź operację „wyłącz” i kliknij „Zastosuj”.

Po wyłączeniu Oracle wyrzuci spust, wskazując, że jest nieaktywny.

Wniosek

W tym artykule zbadano, jak wyłączyć wyzwalacz Oracle za pomocą instrukcji PL/SQL i narzędzia SQL Developer.