[英]Does AFTER LOGON ON DATABASE trigger execute on multiple database instances?
我在Oracle數據庫實例中以以下方式創建了觸發器。
CREATE OR REPLACE TRIGGER after_logon_on_database AFTER LOGON ON DATABASE
BEGIN
-- some things that should be done on logon
END;
/
我擁有實例的Oracle服務器上運行着多個數據庫實例。 我希望此觸發器僅在特定實例上運行。
AFTER LOGON ON DATABASE
觸發器是否在給定Oracle服務器上的每個數據庫實例上運行?
每當有人登錄數據庫時,無論使用哪個實例,都會觸發AFTER LOGON ON DATABASE
觸發器。 因此,您的觸發器每次都會在每個實例上觸發。
但是,您可以將條件應用於觸發器,因此在您的情況下,您需要類似這樣的條件,使觸發器僅在實例1上被觸發:
CREATE OR REPLACE TRIGGER after_logon_on_database AFTER LOGON ON DATABASE
WHEN (SYS_CONTEXT('USERENV','INSTANCE') = 1)
BEGIN
-- some things that should be done on logon
END;
/
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.