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

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

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

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

Как всегд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
14.07.2019, 23:37
    #39837275
Правильный Вася
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FOR UPDATE в синтаксисе MATERIALIZED VIEW
SY, спасибо!

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

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

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


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