【问题标题】:Remove tablespace info from Materialized View DDL从物化视图 DDL 中删除表空间信息
【发布时间】:2011-10-29 19:35:37
【问题描述】:

使用下面的 SQL,可以获得给定物化视图的 DDL。

BEGIN
    DBMS_METADATA.SET_TRANSFORM_PARAM(DBMS_METADATA.SESSION_TRANSFORM, 'STORAGE', FALSE);
    DBMS_METADATA.SET_TRANSFORM_PARAM(DBMS_METADATA.SESSION_TRANSFORM, 'TABLESPACE', FALSE);
    DBMS_METADATA.SET_TRANSFORM_PARAM(DBMS_METADATA.SESSION_TRANSFORM, 'SEGMENT_ATTRIBUTES', FALSE);
END;
SELECT DBMS_METADATA.GET_DDL('MATERIALIZED_VIEW', 'OBJECT_NAME', 'SCHEMA_NAME') FROM DUAL;

如果没有表空间信息,我很难检索 DDL。 SET_TRANSFORM_PARAM 指令实际上被记录为特定于表和索引(不是物化视图)。 STORAGE 确实有效,而 TABLESPACESEGMENT_ATTRIBUTES 则无效。有没有办法从生成的 DDL 中省略表空间信息?

【问题讨论】:

  • 你在哪里运行代码,输出是什么样的?

标签: sql oracle ddl materialized-views


【解决方案1】:

您需要将调用 SET_TRANSFORM_PARAM 中的 object_type 设置为 MATERIALIZED_VIEW。在下面的示例中,未提及表空间:

create materialized view mv
as select * from large_t where rownum < 100;

begin DBMS_METADATA.SET_TRANSFORM_PARAM (
              transform_handle => dbms_metadata.session_transform,
              name             => 'TABLESPACE',
              value            => false,
              object_type      => 'MATERIALIZED_VIEW');
end;
/

select dbms_metadata.get_ddl(
           'MATERIALIZED_VIEW',
           'MV',
           user)
         from dual;

CREATE MATERIALIZED VIEW "SODONNEL"."MV" ("OWNER", "OBJECT_NAME", "SUBOBJECT_NAME", "OBJECT_ID", "DATA_OBJECT_ID", "OBJECT_TYPE", "CREATED", "LAST_DDL_TIME", "TIMESTAMP", "STATUS", "TEMPORARY", "GENERATED", "SECONDARY", "NAMESPACE", "EDITION_NAME")
  ORGANIZATION HEAP PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
  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)
  BUILD IMMEDIATE
  USING INDEX 
  REFRESH FORCE ON DEMAND
  USING DEFAULT LOCAL ROLLBACK SEGMENT
  USING ENFORCED CONSTRAINTS DISABLE QUERY REWRITE
  AS select * from large_t where rownum < 100

【讨论】:

    猜你喜欢
    • 2017-12-27
    • 2019-08-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-16
    • 2015-06-21
    • 2018-04-26
    • 1970-01-01
    相关资源
    最近更新 更多