Как установить Incemental в true для нескольких таблиц с одним и тем же владельцем, используя DBMS_STATS.set_table_prefs? - PullRequest
0 голосов
/ 09 мая 2018

В моей базе данных Oracle есть около 40-50 таблиц, которые разбиты на разделы. Используя DBMS_STATS.set_table_prefs, я хочу установить «Incremental» в значение true для всех моих секционированных таблиц. Кто-нибудь может мне помочь с этим?

Ниже приведен запрос:

SELECT DISTINCT (имя_таблицы), тип_разделения, тип_разделения, ВЛАДЕЛЕЦ FROM all_part_tables ГДЕ ВЛАДЕЛЕЦ = 'пользователь' ORDER BY table_name ASC;

1 Ответ

0 голосов
/ 09 мая 2018

Этот блок PL / SQL (который основан на вашем комментарии в другом вопросе) циклически перебирает разделенные таблицы для пользователя и устанавливает для их инкрементного предпочтения значение true.

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;
/
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...