Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Wie setzen Sie Incemental für mehrere Tabellen mit demselben Besitzer mit DBMS_STATS.set_table_prefs auf true?

Dieser PL/SQL-Block (der auf Ihrem Kommentar in einer anderen Frage basiert) durchläuft partitionierte Tabellen für einen Benutzer und setzt seine inkrementelle Präferenz auf wahr.

begin
    for a in
    (
        select distinct (table_name), owner
        from all_part_tables
        where owner = 'SOME_USER_NAME'
            --Ignore objects in the recycle bin.
            --There are other "tables" that may need to be ignored, 
            --such as external tables, storage tables, etc.
            and table_name not like 'BIN$%'
        order by table_name
    ) loop
        dbms_stats.set_table_prefs(a.owner, a.table_name, 'incremental', 'true');
    end loop;
end;
/