簡體   English   中英

AFTER LOGON ON DATABASE觸發器是否在多個數據庫實例上執行?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM