Bonjour tout le monde !
je suis sous Oracle 10, et je cherche à créer une vue matérialisée. Le problème, c'est que j'ai une requête de création de vue qui marche impec', mais quand j'essaye de l'adapter pour une vue matérialisée à la place, ça ne marche pas !! Je croyais pourtant que ça se créait exactement de la même manière (enfin, en ce qui concerne le select, quoi...).
Voici une version simplifiée de mon problème :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 drop table tableprincipale drop table tablelibelle drop view lavue
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 create table tableprincipale ( PK_tableprincipale varchar2(10) constraint PK_tableprincipale primary key not null, FK_libelle varchar2(10), constraint FK_libelle foreign key (FK_libelle) references tablelibelle (PK_tablelibelle) enable );
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 create table tablelibelle ( PK_tablelibelle varchar2(10) constraint MON_ID_PROGRAMME primary key not null, libelle varchar2(10) );
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 -- ca, ca marche ! create view lavue as select distinct tableprincipale.PK_tableprincipale, (select libelle from tablelibelle where PK_tablelibelle=FK_libelle) as libelle from tableprincipale drop view lavueLa création de la vue normale se fait, mais celle de la vue matérialisée est refusée, à cause du select à l'intérieur. En même temps, si on peut pas faire de requête un tant soit peu complexe, je vois plus trop l'intérêt des vues matérialisées par rapport aux vues normales...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 -- ca, ca ne marche pas, le select a l'interieur du select est refuse : -- ORA-22818.00000 - "subquery expressions not allowed here" create materialized view lavue REFRESH FAST ON COMMIT as select distinct tableprincipale.PK_tableprincipale, (select libelle from tablelibelle where PK_tablelibelle=FK_libelle) as libelle from tableprincipale
Il y a un moyen de faire des vues matérialisées avec des colonnes obtenues par des select un peu complexes (et encore, là, ça va...) ? Je fais comment ?
Merci d'avance!
Partager