Précédent   Forum des professionnels en informatique > Bases de données > Oracle
Oracle Forum Oracle : le serveur, les outils, ... Voir F.A.Q Oracle Tutoriels Oracle
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 10/01/2008, 10h12   #1
F2S
Membre du Club
 
Inscription : avril 2006
Messages : 139
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 139
Points : 62
Points : 62
Envoyer un message via MSN à F2S
Par défaut Problème de Materialized view

]Bonjour à tous,

J'ai un petit soucis avec les vues Oracle, j'aimerais pour des raisons de perf utiliser des vues materialisés au lieu d'utilisé des vues classic, le problème c'est que je n'arrive pas a trouver la bonne syntaxe pour créer ma vue.

voilà le code que la requête :
Code :
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
 
CREATE MATERIALIZED VIEW TRESOR01.CASHIER_DIFFERENCE
 
BUILD IMMEDIATE
 
REFRESH FORCE ON COMMIT
 
AS 
 
SELECT t.day_cashier_id, sum(real_amount * (case when type = 'D' then 1 else -1 end)) AS CASHIER_DIFERENCE, t.HAVE_WORKED 
 
FROM 
 
( 
 
SELECT a.day_cashier_id, sum(a.real_amount) AS real_amount, r.type AS type, 
 
case when EXISTS 
 
( 
 
SELECT 1 FROM amount a2 
 
WHERE a2.day_cashier_id = a.day_cashier_id 
 
AND a2.rubric_code <> 'FONDSO' 
 
AND a2.rubric_code <> 'FONDSF' 
 
AND a2.theoretic_amount <> 0 
 
AND a2.theoretic_amount IS NOT NULL 
 
) 
 
Then 'Y' 
 
Else 'N' 
 
End AS HAVE_WORKED 
 
FROM amount a, day_rubric dr, shop_rubric sr, rubric r 
 
WHERE r.rubric_id = sr.rubric_id 
 
AND sr.shop_rubric_id = dr.shop_rubric_id 
 
AND dr.day_rubric_id = a.day_rubric_id 
 
AND a.day_cashier_id = a.day_cashier_id 
 
GROUP BY r.type, a.day_cashier_id 
 
) t 
 
GROUP BY t.day_cashier_id, t.HAVE_WORKED;
et l'erreur renvoyer est :


ORA-12054: cannot set the ON COMMIT refresh attribute for the materialized view


est ce que quelqu'un peu m'aider...
F2S est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2008, 10h18   #2
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
je pense que c'est une vue complexe et de fait ON COMMIT n'est pas supporté

Aussi c'est REFRESH FAST ON COMMIT et tu ne peux indiquer ni une table au travers un DBLink ni une IOT. Par ailleurs un materialized view log est requis

http://download.oracle.com/docs/cd/B...htm#sthref6783
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2008, 11h06   #3
F2S
Membre du Club
 
Inscription : avril 2006
Messages : 139
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 139
Points : 62
Points : 62
Envoyer un message via MSN à F2S
ok merci,

donc si je simplifie la vue, ça devrait passer ?
F2S est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2008, 11h18   #4
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
commence par remplacer FORCE par FAST. Et quand je parle de vue complexe c'est dans le sens Oracle du terme : http://download.oracle.com/docs/cd/B....htm#sthref495
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2008, 11h25   #5
F2S
Membre du Club
 
Inscription : avril 2006
Messages : 139
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 139
Points : 62
Points : 62
Envoyer un message via MSN à F2S
hummm ok, j'avais rien capter lollllll. dsl, mais j'ai plus un profil web (java, etc...).
merci pour tes infos, je vais étudier cette piste
F2S est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h28.


 
 
 
 
Partenaires

Hébergement Web