我正在尝试使用dbms_metadata.get_ddl比较两个模式。这两个模式是使用完全相同的SQL脚本创建的。但是在一个主键上,我在DDL中有所不同:
ALTER TABLE "SCHEMA_NAME"."AUDIT_EVENTS_LOG" ADD CONSTRAINT "AUDIT_EVENTS_LOG_PK" PRIMARY KEY ("LOG_ID")
USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "DATA_INDEX" ENABLE
Vs的:
ALTER TABLE "SCHEMA_NAME"."AUDIT_EVENTS_LOG" ADD CONSTRAINT "AUDIT_EVENTS_LOG_PK" PRIMARY KEY ("LOG_ID")
USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
TABLESPACE "DATA_INDEX" ENABLE
两个模式都位于同一个数据库实例上。用于创建此主键的脚本(用于两个模式)是:
ALTER TABLE "AUDIT_EVENTS_LOG" ADD CONSTRAINT "AUDIT_EVENTS_LOG_PK" PRIMARY KEY ("LOG_ID")
USING INDEX TABLESPACE "DATA_INDEX" ENABLE;
当使用完全相同的脚本创建两者时,GET_DDL的结果会有什么不同?
答案 0 :(得分:3)
查看DBMS_METADATA.SET_TRANSFORM_PARAM
,尤其是STORAGE
param。
看起来你第一次调用DBMS_METADATA.GET_DDL
启用它(这是默认设置),但第二次调用没有。
如果您每次都想要获得完全相同的结果,那么请注意提前致电SET_TRANSFORM_PARAM
以查看影响输出的每个设置。