IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Oracle Discussion :

Problème de Materialized view


Sujet :

Oracle

  1. #1
    F2S
    F2S est déconnecté
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 139
    Points : 97
    Points
    97
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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...

  2. #2
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    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

  3. #3
    F2S
    F2S est déconnecté
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 139
    Points : 97
    Points
    97
    Par défaut
    ok merci,

    donc si je simplifie la vue, ça devrait passer ?

  4. #4
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    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

  5. #5
    F2S
    F2S est déconnecté
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 139
    Points : 97
    Points
    97
    Par défaut
    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

Discussions similaires

  1. Problèmes de materialized views
    Par moezsokrati dans le forum SQL
    Réponses: 11
    Dernier message: 20/11/2008, 17h16
  2. [VB.NET] ListView Problème avec propriété View à 'List'
    Par elkidos dans le forum Windows Forms
    Réponses: 2
    Dernier message: 25/08/2006, 17h10
  3. snapshot or materialized view
    Par sygale dans le forum Administration
    Réponses: 11
    Dernier message: 12/10/2004, 17h07
  4. MATERIALIZED VIEW <> SNAPSHOT
    Par sygale dans le forum Administration
    Réponses: 3
    Dernier message: 18/06/2004, 11h14
  5. SQL Dynamique - Materialized view
    Par Simeans2004 dans le forum SQL
    Réponses: 15
    Dernier message: 10/06/2004, 17h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo