Материализованный вид - обновление условий коммита - PullRequest
0 голосов
/ 20 декабря 2018

Я пытаюсь написать материализованное представление.Когда я запускаю код, oracle возвращает мне следующую ошибку

Error at Command Line:31 Column:14
Error report:
SQL Error: ORA-12054: cannot set the ON COMMIT refresh attribute for the materialized view
12054. 00000 -  "cannot set the ON COMMIT refresh attribute for the materialized view"
*Cause:    The materialized view did not satisfy conditions for refresh at
       commit time.

Запрос работает хорошо, когда я использую опцию «по требованию» для обновления.Проблемы начинаются, когда я пытаюсь обновить материализованное представление в автоматическом режиме.Я не использую материализованный журнал просмотра.Запрос

CREATE MATERIALIZED VIEW "PARLAMENTO2018"."ASSENZE2" ("COGNOME", "NOME", "CF", "PRESENZE", "PREC", "srowid", "prowid")
  REFRESH FORCE ON commit
  AS select
  cognome, nome, cf, presenze, prec, srowid, prowid
from(
  select
    cognome, nome, cf, presenze, totale, presenze*100/totale as prec, s.rowid as srowid, p.rowid as prowid
  from
    senatoriattuali s left JOIN partecipazioni p
    on cf = p.parlamentare
    and sedute_tipo = 's',
--seleziona le sedute del senato ('s') effettuate nell'ultima legislatura
    (select
       count(data) as totale
     from
       sedute
     where
       tipo = 's'
       and data >= (
--seleziona la data di'inizio dell'ultima legislatura
         select
           max(datainizio)
         from
           legislature)),
--calcola il numero di presenze di un senatore nella legislazione corrente
    (select 
       count (parlamentare) as presenze
     from 
       sedute, partecipazioni
     where 
       tipo = 's'
       and sedute_tipo = tipo
       and sedute_data = data
       and data >= (
--seleziona la data di'inizio dell'ultima legislatura
         select 
           max(datainizio)
         from
           legislature)) 

group by cf, cognome, nome, totale, presenze,s.rowid, p.rowid)

where prec < 30;

Это в половину запроса.Другая половина похожа и теперь бесполезна добавить ее

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...