Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Добавить столбец в Materialized View без обновления / 8 сообщений из 8, страница 1 из 1
31.05.2017, 14:39
    #39463125
veery_good
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добавить столбец в Materialized View без обновления
Просьба помочь, если это возможно.
Есть регулярный процесс, отключить который нет возможности, и который обновляет в определённое время матвьюхи.
В одну из них нужно добавить новый столбец, но не хочется при этом производить обновление данных, т.к. во-первых есть риск, что обновление не успеет отработать до старта регулярного процесса. Во-вторых не хочется дважды производить одно и то же обновление.
Может есть способ добавить в create materialized view новое поле, но чтобы обновления данных матвьюхи пока не производилось, а осуществилось только с помощью её обновления регулярным процессом?
...
Рейтинг: 0 / 0
31.05.2017, 14:50
    #39463130
dbms_photoshop
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добавить столбец в Materialized View без обновления
veery_good,

prebuilt table
...
Рейтинг: 0 / 0
31.05.2017, 14:50
    #39463131
AlexFF__|
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добавить столбец в Materialized View без обновления
veery_goodДобавить столбец в Materialized View без обновления
А что, можно добавить в MV столбец с обновлением данных?

- удаляешь MV c сохранением таблицы
- добавляешь в таблицу столбец
- создаешь MV на данных этой таблицы с дополнительным столбцом.
...
Рейтинг: 0 / 0
31.05.2017, 14:58
    #39463134
veery_good
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добавить столбец в Materialized View без обновления
AlexFF__|А что, можно добавить в MV столбец с обновлением данных?.

Грубо говоря было
Код: plsql
1.
2.
3.
4.
5.
6.
create materialized view MW_CONTRACT
refresh force on demand
as
select contract_date,
       contract_id
from TBL_CONTRACTS;



Нужно сделать
Код: plsql
1.
2.
3.
4.
5.
6.
7.
create materialized view MW_CONTRACT
refresh force on demand
as
select contract_date,
       contract_id,
       type_product
from TBL_CONTRACTS;



Но чтобы при нажатии Execute данные не перестроились, а пока сохранился только запрос. И уже когда регулярный процесс запуститься, тогда обновление и произошло бы.
...
Рейтинг: 0 / 0
31.05.2017, 15:56
    #39463172
veery_good
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добавить столбец в Materialized View без обновления
dbms_photoshopprebuilt table
Спасибо! Разобрался с этим.

Этот параметр позволяет добавлять, изменять, или удалять поля в матвьюхи не пересчитывая их

Чтобы это работало нужно сначала для каждой матвьюхи создать таблицу.
Код: plsql
1.
2.
3.
4.
create table MW_CONTRACT as
select contract_date,
       contract_id
from TBL_CONTRACTS;



Затем создать матвьюху с тем же именем, с тем же запросом и с ON PREBUILT TABLE.
Код: plsql
1.
2.
3.
4.
5.
6.
7.
create materialized view MW_CONTRACT
ON PREBUILT TABLE
refresh force on demand
as
select contract_date,
       contract_id
from TBL_CONTRACTS;



В результате, когда нужно будет добавить новый столбец он сначала добавляется в таблицу с помощью
Код: plsql
1.
alter table MW_CONTRACT add type_product NUMBER;


Затем матвьюха удаляется
Код: plsql
1.
DROP MATERIALIZED view MW_CONTRACT;


и создаётся новая с тем же именем, но уже содержащая в коде новый столбец.
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
create materialized view MW_CONTRACT
ON PREBUILT TABLE
refresh force on demand
as
select contract_date,
       contract_id,
       type_product
from TBL_CONTRACTS;


При этом пересчёта матвьюхи не происходит. И она обновится уже при выполнении регулярного процесса.
...
Рейтинг: 0 / 0
31.05.2017, 16:31
    #39463194
veery_good
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добавить столбец в Materialized View без обновления
Хотя можно ещё использовать
Код: plsql
1.
BUILD DEFERRED


Что ещё проще :)
...
Рейтинг: 0 / 0
31.05.2017, 17:45
    #39463270
UDW
UDW
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добавить столбец в Materialized View без обновления
Для матвьюшек RO можно выполнить тот же alert, что и для таблицы, а затем отрефрешить.
...
Рейтинг: 0 / 0
01.06.2017, 11:28
    #39463677
trace.log
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добавить столбец в Materialized View без обновления
UDWДля матвьюшек RO можно выполнить тот же alert , что и для таблицы, а затем отрефрешить.

опечятка видимо
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Добавить столбец в Materialized View без обновления / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]