Создать материализованное представление с столбцом NOT NULL? (dblink на внешнюю таблицу)

Я создал материализованное представление, которое синхронизирует данные из внешней системы (по 5-секундному расписанию; через dblink).

  • Основной системой с MV является Oracle 18c.
  • Внешняя система с исходными данными/dblink — Oracle 19c.

create materialized view log on my_external_sys.workorder with rowid;  --external system 

create materialized view my_primary_sys.wo_mv --primary system 
build immediate 
refresh force 
on demand 
start with sysdate next sysdate + (5/(60*60*24))
as
select
    cast(workorderid as number(38,0)) as objectid,
    wonum,
    status,
    --other fields
    longitudex,
    latitudey
from
    my_external_sys.workorder@gistomax --dblink

Материализованное представление работает так, как ожидалось.

Однако теперь я понимаю, что моя основная система предъявляет особые требования к своим таблицам (или, в данном случае, к MV).

  • В таблицах/MV должен быть столбец OBJECTID с ограничением NOT NULL.

  • Подробнее здесь: SDO_GEOMETRY и ArcGIS


Вопрос:

Есть ли способ создать материализованное представление (через dblink к внешней базе данных/таблице), в котором есть столбец с константой NOT NULL?


person User1973    schedule 25.11.2020    source источник


Ответы (1)


Я сделал ошибку, предположив, что alter table не будет работать на MV.

Но это полностью работает.

alter table my_primary_sys.wo_mv modify objectid not null;

Это было просто.

person User1973    schedule 25.11.2020