powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / FOR UPDATE в синтаксисе MATERIALIZED VIEW
7 сообщений из 7, страница 1 из 1
FOR UPDATE в синтаксисе MATERIALIZED VIEW
    #39837160
Правильный Вася
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Была такая опция ещё в версии 12.1, а в 12.2 и новее она куда-то пропала из CREATE.

Она устарела или просто теперь все такие вьюхи уже можно редактировать напрямую?
Или её как-то переназвали/включили в другую опцию одним из вариантов?

Но в ALL_MVIEWS колонкаUPDATABLE VARCHAR2(1) Indicates whether the materialized view is updatable (Y) or not (N)никуда не делась.

Или я вообще всё неправильно понимаю?
...
Рейтинг: 0 / 0
FOR UPDATE в синтаксисе MATERIALIZED VIEW
    #39837175
Фотография SY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Правильный ВасяОна устарела

Как всегдa внимательно читаем доку.


11G:


FOR UPDATE Clause

Specify FOR UPDATE to allow a subquery, primary key, object, or rowid materialized view to be updated. When used in conjunction with Advanced Replication , these updates will be propagated to the master.

А теперь 12.2:

Desupport of Advanced Replication
Starting in Oracle Database 12c release 2 (12.2), the Advanced Replication feature of Oracle Database is desupported.

The Oracle Database Advanced Replication feature is desupported in its entirety. The desupport of this feature includes all functionality associated with this feature: multimaster replication, updateable materialized views , and deployment templates. Read-only materialized views are still supported with basic replication.

Oracle recommends that you replace your use of Advanced Replication with Oracle GoldenGate.

SY.
...
Рейтинг: 0 / 0
FOR UPDATE в синтаксисе MATERIALIZED VIEW
    #39837275
Правильный Вася
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SY, спасибо!

А как насчёт колонки ALL_MVIEWS. Это действительно она отвечает за ту опцию или я снова ошибся?
...
Рейтинг: 0 / 0
FOR UPDATE в синтаксисе MATERIALIZED VIEW
    #39837293
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Правильный Вася хочет чтоб все всегда было правильно
К сожалению, так не всегда получается
Хоть Оракл и довольно консервативен в этой теме -- от объявления obsoleted до depricated и реального выпиливания проходят годы
Что, конечно, никак не спасает приложения, написанные пару десятков лет назад
...
Рейтинг: 0 / 0
FOR UPDATE в синтаксисе MATERIALIZED VIEW
    #39837514
Правильный Вася
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вячеслав Любомудров, :))

Но философию в сторону. В 11-й версии эта колонки про эту опцию или нет?
...
Рейтинг: 0 / 0
FOR UPDATE в синтаксисе MATERIALIZED VIEW
    #39837659
Правильный Вася
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо, уже разобрался, это действительно она.
...
Рейтинг: 0 / 0
FOR UPDATE в синтаксисе MATERIALIZED VIEW
    #39837986
Фотография SY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Правильный Вася,

Кстати, FOR UPDATE исчез только из доки, что обьяcняет присутствие UPDATABLE в XXX_MVIEWS:

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
SQL> select banner from v$version;

BANNER
--------------------------------------------------------------------------------
Oracle Database 18c Enterprise Edition Release 18.0.0.0.0 - Production

SQL> create table t (
  2    x int primary key, y int
  3  );

Table created.

SQL> insert into t values (1, 1);

1 row created.

SQL> insert into t values (2, 2);

1 row created.

SQL> create materialized view log on t including new values;

Materialized view log created.

SQL> create materialized view mv
  2  refresh fast with primary key for update
  3  as
  4    select * from t;

Materialized view created.

SQL> update mv
  2  set    y = 3;

2 rows updated.

SQL>
SQL> insert into mv values (3, 3);

1 row created.

SQL> update mv
  2  set    y = 3;

2 rows updated.

SQL> insert into mv values (3, 3);

1 row created.

SQL> select * from mv;

         X          Y
---------- ----------
         1          3
         2          3
         3          3

SQL> select * from t;

         X          Y
---------- ----------
         1          1
         2          2

SQL> exec dbms_mview.refresh('mv');

PL/SQL procedure successfully completed.

SQL> select * from mv;

         X          Y
---------- ----------
         1          1
         2          2

SQL>



Так-что Oracle с докой начудил. FOR UPDATE дает возможность изменить данные MV а Advanced Replication выполнить эти изменения в master тавлицах. Уход Advanced Replication != уходу FOR UPDATE.

SY.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / FOR UPDATE в синтаксисе MATERIALIZED VIEW
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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