2014-07-21 42 views
0

在我們的測試環境中,模式被預置爲觸發DDL,正如人們所期望的那樣。但是,在我們的QA和PROD環境中,模式前綴不會顯示在DDL中。我們總是以「SCHEMA」用戶身份進行連接,所以迄今爲止它一直沒有成爲問題。是否值得更新QA和PROD DDL以包含模式前綴?如果我們不曾以「SCHEMA」以外的用戶/模式連接到數據庫,那麼我們是否真的有什麼擔心?Oracle SQL Developer沒有在觸發DDL中放入模式名稱

TEST DDL:

create or replace TRIGGER "SCHEMA"."MDATA_BIR_TRG" 
       BEFORE INSERT ON "SCHEMA"."METADATA" 
       FOR EACH ROW 
       BEGIN 
        ---CODE HERE. 
       END; 

QA DDL:

create or replace TRIGGER "MDATA_BIR_TRG" 
        BEFORE INSERT ON "METADATA" 
        FOR EACH ROW 
        BEGIN 
         ---CODE HERE. 
        END; 
+0

您如何在每種情況下創建對象,以及如何獲取該輸出?這是來自'dbms_matadata.get_ddl'嗎? –

+0

該代碼來自DDL導出,我的測試和質量保證數據庫。 – Green

+2

使用SQL Developer中的導出嚮導(可以在所有受權限的對象和第1步或第2步中使用),我看到一個複選框以包含或排除模式。 –

回答

1

沒有,如果你想確保處理的對象屬於定義的模式或沒有架構是可選的,只有需要的。如果你「不關心」並且總是使用意味着你當前的模式,你可以忽略它。

2

我同意omeinusch說模式名稱不是那麼重要(只要當前模式與對象所在的模式相同)。不需要重新編譯觸發器並使其完全合格。

導出對象的DDL的常用方法是使用SQL Developer的導出嚮導,它允許您指示對象的DDL是否符合模式限定。

路線從SQL Developer導出嚮導獲得DDL

  1. 在連接導航器右鍵單擊對象,並選擇出口 enter image description here
  2. 選擇導出的特性(通過選擇檢查包括架構) enter image description here
  3. 確保輸入文件路徑。
  4. 點擊下一步。
+0

顯示架構選項在1.5中不存在,但它在版本4中。謝謝帕特里克。 – Green

相關問題