0

我正在尝试使用 user_indexes 和 DBMS_METADATA.GET_DDL 访问表的索引 DDL

declare

V_DDL clob;

Begin

    for rec in (select ai.owner, ai.index_name, ai.table_name from all_indexes ai, base_table til
    where ai.table_name = upper(til.table_name)) loop
    
    DBMS_METADATA.SET_TRANSFORM_PARAM(DBMS_METADATA.SESSION_TRANSFORM,'STORAGE',FALSE);
    DBMS_METADATA.SET_TRANSFORM_PARAM(DBMS_METADATA.SESSION_TRANSFORM,'PRETTY',TRUE);
    DBMS_METADATA.SET_TRANSFORM_PARAM(DBMS_METADATA.SESSION_TRANSFORM,'TABLESPACE',FALSE);
    
    V_DDL := DBMS_METADATA.GET_DDL('INDEX',rec.Index_Name, Rec.Owner);
    
    Insert into after_work VALUES(rec.index_name, rec.table_name, V_DDL);
    end loop;
    
end;
/

我需要手动双击 INDEX_SCRIPT 列来查看 DDL 脚本。

我想了解的是如何通过 SQL 访问 DDL 脚本。请给我建议。谢谢你

我得到了如图所示的结果

结果

4

0 回答 0