使用以下 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
一个确实有效,而andTABLESPACE
没有SEGMENT_ATTRIBUTES
效果。有没有办法从生成的 DDL 中省略表空间信息?