次の 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
one は実際に機能しますが、andTABLESPACE
はSEGMENT_ATTRIBUTES
効果がありません。生成された DDL からテーブルスペース情報を省略する方法はありますか?