powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / ORA-32428 "Shape of MV is not supported"
13 сообщений из 13, страница 1 из 1
ORA-32428 "Shape of MV is not supported"
    #39840046
Правильный Вася
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ORA 12.2
Пытаюсь создать простую матвьюху (текст на картинке), ругается.
Причём текст ошибки на русском с картинки и английский из доки как-то не очень совпадают.
ORA-32428: on-statement materialized join view error: string
Cause: An error related to on-statement materialized join view was received.
Action: Refer to the error message for more information.
Откуда JOIN, если его в тексте вьюхи нет?
Что за "Shape of MV"? По поводу этого Shape нашел всего одну статью, но там про JSON_TABLE, коего у меня нет :-(
...
Рейтинг: 0 / 0
ORA-32428 "Shape of MV is not supported"
    #39840066
Фотография SY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Правильный Вася,

Ну когда же ты начнешь доку ЧИТАТЬ а не листать:

Restrictions on Refreshing ON STATEMENT

The following restrictions apply to the ON STATEMENT clause:

This clause can be used only with materialized views that are fast refreshable. The ON STATEMENT clause must be specified with the REFRESH FAST clause.

The base tables referenced in the materialized view’s defining query must be connected in a join graph that uses the star schema or snowflake schema model. The query must contain exactly one centralized fact table and one or more dimension tables, with all pairs of joined tables being related using primary key-foreign key constraints.

SY.
...
Рейтинг: 0 / 0
ORA-32428 "Shape of MV is not supported"
    #39840071
Правильный Вася
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SY,

Не вижу противоречия между твоей цитатой и моим вопросом.
У меня ОДНА таблица, нет никаких JOIN, первичный ключ в таблице определён.

Или именно то, что она ОДНА, и является проблемой?
...
Рейтинг: 0 / 0
ORA-32428 "Shape of MV is not supported"
    #39840077
Фотография SY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Правильный Вася,

The base tableS referenced in the materialized view’s defining query must be connected in a JOIN GRAPH that uses the STAR SCHEMA or SNOWFLAKE SCHEMA model.

SY.
...
Рейтинг: 0 / 0
ORA-32428 "Shape of MV is not supported"
    #39840078
Фотография SY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Правильный Вася,

With the ON STATEMENT refresh method, an MV is automatically refreshed whenever DML happens on a base table of the MV. Therefore, whenever a DML happens on any table on which a materialized view is defined, the change is automatically reflected in the materialized view. The advantage of using this approach is that the user no long needs to create a materialized view log on each of the base table in order to do fast refresh. The refresh can then avoid the overhead introduced by MV logging but still keep the materialized view refreshed all the time.

SY.
...
Рейтинг: 0 / 0
ORA-32428 "Shape of MV is not supported"
    #39840099
Правильный Вася
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Иными словами, ON STATEMENT нельзя применять к единственной таблице, а только к взаимосвязанным ключами таблицам. В чём смысл такого ограничения? Последней цитате единственная таблица не противоречит...
...
Рейтинг: 0 / 0
ORA-32428 "Shape of MV is not supported"
    #39840105
Фотография SY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Правильный ВасяИными словами, ON STATEMENT нельзя применять к единственной таблице, а только к взаимосвязанным ключами таблицам. В чём смысл такого ограничения? Последней цитате единственная таблица не противоречит...

The advantage of using this approach is that the user no long needs to create a materialized view log on each of the base table in order to do fast refresh. The refresh can then avoid the overhead introduced by MV logging but still keep the materialized view refreshed all the time.


А с одной таблицей проблемы "create a materialized view log on each of the base table in order to do fast refresh" просто нет и посему стандартый ON COMMIT.

SY.
...
Рейтинг: 0 / 0
ORA-32428 "Shape of MV is not supported"
    #39840111
Правильный Вася
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SYА с одной таблицей проблемы "create a materialized view log on each of the base table in order to do fast refresh" просто нет и посему стандартый ON COMMIT.
Проблемы-то нет, но и логики особой тоже, т.к.
авторThe advantage of using this approach is that the user no long needs to create a materialized view log ... The refresh can then avoid the overhead introduced by MV logging .
...
Рейтинг: 0 / 0
ORA-32428 "Shape of MV is not supported"
    #39840153
Правильный Вася
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как продолжение той же ошибки в новой вариации.

Соединение 2 таблиц по ключам (запрос на картинке). Если добавить t2.rowid в список полей SELECT, то
Код: plsql
1.
ORA-00904: ROWID: invalid identifier


И чего ему надо?
...
Рейтинг: 0 / 0
ORA-32428 "Shape of MV is not supported"
    #39840156
Фотография SY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Правильный ВасяПроблемы-то нет, но и логики особой тоже, т.к.
авторThe advantage of using this approach is that the user no long needs to create a materialized view log ... The refresh can then avoid the overhead introduced by MV logging .

Если суслика не видно...

Когда у нас FAST REFRESH то требуeтся MV LOG на каждую каблицу. Однако при star/slowflake все таблицы связаны жестко через primary key-foreign key constraints и посему Oracle "под капотом" может (мои домыслы) создать единую структуру хранящую изменения всех этих таблиц (этакой супер MV LOG) и теперь нам не надо заморачиваться индивидуальными MV LOGами. A при одной таблице ON STATEMENT как козе баян.

SY.
...
Рейтинг: 0 / 0
ORA-32428 "Shape of MV is not supported"
    #39840163
Maxim Demenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Правильный ВасяКак продолжение той же ошибки в новой вариации.

Соединение 2 таблиц по ключам (запрос на картинке). Если добавить t2.rowid в список полей SELECT, то
Код: plsql
1.
ORA-00904: ROWID: invalid identifier



И чего ему надо?



И действительно ,почему Все животные равны, но некоторые более равны, чем другие (c)?

Почему так нельзя ?

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
SQL> create materialized view emp_dept
  2  refresh fast on statement
  3  as
  4  select e.ename, e.deptno, e.job, e.rowid, d.dname
  5  from emp e , dept d
  6  where e.deptno=d.deptno;
select e.ename, e.deptno, e.job, e.rowid, d.dname
                                 *
ERROR at line 4:
ORA-00904: "ROWID": invalid identifier


А так можно ?
Код: plsql
1.
2.
3.
4.
5.
6.
7.
SQL> create materialized view emp_agg
  2  as
  3  select count(*), job
  4  from emp
  5  group by job;

Materialized view created.


А так нельзя , но говорят не кто виноват а что делать (c) ?
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
SQL> create materialized view emp_rowid
  2  as
  3  select e.rowid, ename
  4  from emp e;
select e.rowid, ename
       *
ERROR at line 3:
ORA-00998: must name this expression with a column alias



Regards
...
Рейтинг: 0 / 0
ORA-32428 "Shape of MV is not supported"
    #39840184
Правильный Вася
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SYA при одной таблице ON STATEMENT как козе баян.
Как по мне, нафига баян из MVLOG + ON COMMIT для одной таблицы, если можно внутрях этот лог сделать автоматом для ON STATEMENT. Ведь напрашивается!
Если само может сделать лог для связки таблиц, нафига игнорировать, даже ругаться, одну таблицу?
Нет логики, как я и сказал.

Maxim Demenko,
спасибо, понял. ROWID мешает, т.к. у создаваемой для хранения данных MV таблицы свой ROWID будет, значит чужой надо просто переименовать.
...
Рейтинг: 0 / 0
ORA-32428 "Shape of MV is not supported"
    #39840238
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Правильный ВасяВедь напрашивается!
Если само может сделать лог для связки таблиц, нафига игнорировать, даже ругаться, одну таблицу?
Нет логики, как я и сказал.Ну так обратись, чудак, в Oracle с рацухой. Может они проникнутся твоими потугами постичь задворки ораклового синтаксиса и не усмотрят конкурента.
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / ORA-32428 "Shape of MV is not supported"
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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