Oracle SQL Developer不会在触发器DDL中放入模式名称

时间:2014-07-21 20:35:31

标签: sql oracle

在我们的测试环境中,模式会按照人们的预期添加到触发器DDL之前。但是,在我们的QA和PROD环境中,架构前缀不会显示在DDL中。我们总是以" SCHEMA"用户因此到目前为止还没有成为问题。是否值得更新QA和PROD DDL以包含模式前缀?如果我们没有以" SCHEMA"以外的用户/架构连接到数据库,我们真的有什么可担心的吗?

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;

2 个答案:

答案 0 :(得分:2)

我同意omeinusch的架构名称并不重要(只要当前架构与对象所在的架构相同)。无需重新编译触发器并使其完全合格。

导出对象的DDL的常用方法是使用SQL Developer的导出向导,该向导允许您指示对象的DDL是否是模式限定的。

从SQL Developer导出向导获取DDL的说明

  1. 右键单击连接导航器中的对象,然后选择导出 enter image description here
  2. 选择导出的特征(通过选择检查包括模式) enter image description here
  3. 确保输入文件路径。
  4. 点击下一步。

答案 1 :(得分:1)

不,SCHEMA是可选的,只有在您希望确保处理对象属于已定义的架构时才需要。如果你不在乎"并且总是使用意味着您当前的架构,您可以省略它。