【问题标题】:Why does Oracle add extra tables to my ddl export为什么 Oracle 会在我的 ddl 导出中添加额外的表
【发布时间】:2016-07-16 08:01:10
【问题描述】:

这可能是微不足道的,但我不确定为什么当我将关系设计导出为 ddl 时,Oracle 会创建额外的表。

CREATE TABLE WHY
(
Col1_ID    INTEGER NOT NULL ,
Col2_ID INTEGER NOT NULL
) ;
ALTER TABLE WHY ADD CONSTRAINT WHY_PK PRIMARY KEY ( Col1_ID, Col2_ID ) ;

Oracle 添加了这个表

CREATE TABLE WHY_JN
(JN_OPERATION CHAR(3) NOT NULL
,JN_ORACLE_USER VARCHAR2(30) NOT NULL
,JN_DATETIME DATE NOT NULL
,JN_NOTES VARCHAR2(240)
,JN_APPLN VARCHAR2(35)
,JN_SESSION NUMBER(38)
,Col1_ID INTEGER NOT NULL
,Col2_ID INTEGER NOT NULL
);

还有这个

CREATE OR REPLACE TRIGGER WHY_JNtrg
AFTER 
INSERT OR 
UPDATE OR 
DELETE ON WHY for each row 
Declare 
rec WHY_JN%ROWTYPE; 
blank WHY_JN%ROWTYPE; 
BEGIN 
 rec := blank; 
 IF INSERTING OR UPDATING THEN 
   rec.Col1_ID := :NEW.Col1_ID; 
   rec.Col2_ID := :NEW.Col2_ID; 
   rec.JN_DATETIME := SYSDATE; 
   rec.JN_ORACLE_USER := SYS_CONTEXT ('USERENV', 'SESSION_USER'); 
   rec.JN_APPLN := SYS_CONTEXT ('USERENV', 'MODULE'); 
   rec.JN_SESSION := SYS_CONTEXT ('USERENV', 'SESSIONID'); 
   IF INSERTING THEN 
     rec.JN_OPERATION := 'INS'; 
  ELSIF UPDATING THEN 
    rec.JN_OPERATION := 'UPD'; 
  END IF; 
ELSIF DELETING THEN 
  rec.Col1_ID := :OLD.Col1_ID; 
  rec.Col2_ID := :OLD.Col2_ID; 
  rec.JN_DATETIME := SYSDATE; 
  rec.JN_ORACLE_USER := SYS_CONTEXT ('USERENV', 'SESSION_USER'); 
  rec.JN_APPLN := SYS_CONTEXT ('USERENV', 'MODULE'); 
  rec.JN_SESSION := SYS_CONTEXT ('USERENV', 'SESSIONID'); 
  rec.JN_OPERATION := 'DEL'; 
END IF; 
INSERT into WHY_JN VALUES rec; 
END; 
/

ddl 文件顶部:

--   Generated by Oracle SQL Developer Data Modeler 4.1.3.901
--   at:        2016-03-28 19:37:37 EDT
--   site:      Oracle Database 11g
--   type:      Oracle Database 11g

文件底部

 -- Oracle SQL Developer Data Modeler Summary Report: 
 -- 
-- CREATE TABLE                            1
-- CREATE INDEX                             0
-- ALTER TABLE                             3
-- CREATE VIEW                              0
-- ALTER VIEW                               0
-- CREATE PACKAGE                           0
-- CREATE PACKAGE BODY                      0
-- CREATE PROCEDURE                         0
-- CREATE FUNCTION                          0
-- CREATE TRIGGER                           3
-- ALTER TRIGGER                            0
-- CREATE COLLECTION TYPE                   0
-- CREATE STRUCTURED TYPE                   0
-- CREATE STRUCTURED TYPE BODY              0
-- CREATE CLUSTER                           0
-- CREATE CONTEXT                           0
-- CREATE DATABASE                          0
-- CREATE DIMENSION                         0
-- CREATE DIRECTORY                         0
-- CREATE DISK GROUP                        0
-- CREATE ROLE                              0
-- CREATE ROLLBACK SEGMENT                  0
-- CREATE SEQUENCE                          0
-- CREATE MATERIALIZED VIEW                 0
-- CREATE SYNONYM                           0
-- CREATE TABLESPACE                        0
-- CREATE USER                              0
-- 
-- DROP TABLESPACE                          0
-- DROP DATABASE                            0
-- 
-- REDACTION POLICY                         0
-- 
-- ORDS DROP SCHEMA                         0
-- ORDS ENABLE SCHEMA                       0
-- ORDS ENABLE OBJECT                       0
-- 
-- ERRORS                                   0
-- WARNINGS                                 0

如果有人能指出我的官方参考资料,我将不胜感激。

【问题讨论】:

  • 根据我的经验,Oracle 数据库肯定不会添加额外的表或触发器。这些表是如何创建的?您使用的是什么版本的 Oracle?是否涉及其他产品?
  • @BobJarvis 我先使用 Oracle Data Modeler,然后导出 DDL 文件。甲骨文 11g。不涉及其他产品。
  • Oracle Data Modeler 的输出中包含什么 - 只是 WHY 表的定义,还是包含其他内容?
  • OK - 这是数据建模工具创建的东西,而不是 Oracle 数据库本身。 (你可能会认为我在扯头发 - 毕竟,这都是 Oracle 的东西 - 但与大多数大公司一样,左手不仅不知道右手在做什么,而且左手hand 甚至不知道 有多少 右手 :-)。我已经用 Oracle Data Modeler 重新标记了 - 也许您会以这种方式得到更好的答案。无论如何,我怀疑这在很大程度上取决于您的模型中的其他内容。祝你好运。
  • @BobJarvis 谢谢。

标签: oracle schema oracle-sql-data-modeler


【解决方案1】:

似乎某些设置可以跟踪表WHY 中发生的事情到表WHY_JN。 与手册交叉检查您的设置。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-09-22
    • 2019-12-30
    • 2018-08-31
    • 1970-01-01
    • 2016-02-03
    • 1970-01-01
    • 1970-01-01
    • 2017-06-10
    相关资源
    最近更新 更多