Bonjour,

Je cherche à créer une vue matérialisée qui est la jointure de deux tables et de lui appliquer un rafraichissement fast.
pour l'instant, toutes mes tentatives ont échoué.

voici le code très simple de création des tables:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
create table emp(noemp number, nodept number);
 
alter table EMP
  add constraint emp_pk primary key (NOEMP);
 
 
create table dept(nodept number, noregion number);
 
alter table DEPT
  add constraint dept_pk primary key (nodept);
 
alter table EMP
  add constraint EMP_FK_DEPT foreign key (NODEPT)
  references dept (NODEPT);
J'ai fait deux tests pour la creation des journaux de vues matérialisées

1:


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
 
create materialized view log on emp;
 
create materialized view log on dept;


2:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
 
create materialized view log on emp with rowid,primary key;
 
create materialized view log on dept with primary key,rowid;


voici les codes d'erreurs

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
 
create materialized view mv_emp_by_region 
enable query rewrite 
as
select count(*), noregion 
from emp, dept
where emp.nodept=dept.nodept
group by noregion;
 
 
call dbms_mview.refresh('mv_emp_by_region','f')
1:
ORA-12032: cannot use rowid column from materialized viex log on dept


2:
ORA-32401: materialized view log dept does not have new values

Je catche une 32401 ce qui m'étonne pour deux raisons:
1: et alors, ou est le problème s'il n'y a pas de nouvelles valeurs.
2: il y a de nouvelles valeurs, j'en ai rajouté et ait retesté le rafraichissement et retombe sur la même erreur!!!!!!!



Une idée please