Oracle: создать таблицу в хранимой процедуре

Мне нужна процедура для обновления раздела материализованного представления через PEL.

Я хотел бы, чтобы моя процедура:

  1. создать таблицу, выбирая данные только за один год (передается как параметр) подробной таблицы и агрегировать данные за этот год

  2. создать раздел соответствующего года, если он не существует

  3. раздел обменивается таблицей с разделом MVIEW, который я хочу обновить

  4. удалить таблицу, используемую для загрузки данных

Но я читал во многих сообщениях (например, Oracle Sql : Процедура, которая может создавать внутри себя временные таблицы) Кажется, не рекомендуется создавать таблицу в процедуре, поэтому я хотел бы спросить, есть ли у кого-нибудь лучшее решение для этого.

Более того, если это на самом деле лучшее решение, есть ли обходной путь, если внутри цитаты строки выполнения немедленно мне нужно открыть цитату без закрытия цитаты? например:

EXECUTE IMMEDIATE 'CREATE GLOBAL TEMPORARY TABLE as select  TRUNC(date, 'MONTH') from dual;'

Спасибо!


person Community    schedule 19.10.2017    source источник
comment
Создание временной таблицы в хранимой процедуре — это нормально.   -  person Gordon Linoff    schedule 19.10.2017
comment
вы должны использовать ''MONTH'' вместо 'MONTH'   -  person Barbaros Özhan    schedule 19.10.2017