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 :

[9i SE] ORA-12054 cannot set ON COMMIT refresh attribut


Sujet :

Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Décembre 2002
    Messages
    438
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 438
    Par défaut [9i SE] ORA-12054 cannot set ON COMMIT refresh attribut
    Bonjour,

    J'essaye de créer un vue matérialisée comme suit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    CREATE MATERIALIZED VIEW "TEST"."SN_MATABLE" 
    BUILD IMMEDIATE 
    REFRESH FAST 
    ON COMMIT 
    AS
    Select * from MATABLE@DBLINK
    J'ai alors l'erreur : ORA-12054 cannot set ON COMMIT refresh attribut

    Le code suivant fonctionne très bien sur la base ou la table maître est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    CREATE MATERIALIZED VIEW "TEST"."SN_MATABLE" 
    BUILD IMMEDIATE 
    REFRESH FAST 
    ON COMMIT 
    AS
    Select * from MATABLE
    Est-il possible de créer des VM on commit entre bases de données distantes (avec DBLINK) ? (Attention je suis en Standard édition !)

    Si oui qu'est-ce qui merde ?

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Avril 2006
    Messages : 133
    Par défaut
    Réponse sur l'excellent site : ASKTOM

    http://asktom.oracle.com/pls/ask/f?p...:1167235330355

  3. #3
    Membre éclairé
    Inscrit en
    Décembre 2002
    Messages
    438
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 438
    Par défaut
    Citation Envoyé par jlucch
    Réponse sur l'excellent site : ASKTOM

    http://asktom.oracle.com/pls/ask/f?p...:1167235330355
    Je ne vois pas ma réponse dans l'exellent ASKTOM.

    Il parle d'un DBLINK avec interbase ! Tu confirmes ?

  4. #4
    Membre expérimenté
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Avril 2006
    Messages : 133
    Par défaut
    Les MV sont asynchrones .. et Tom (de asktom) dit que l'on ne peut pas avoir de refresh on commit dans un environnement distribué ...

    essaye comme ça, (je procède comme ceci dans mes environnements répliqués) :

    CREATE SNAPSHOT "TEST"."SN_MATABLE"
    on prebuilt table
    REFRESH FAST
    FOR UPDATE
    AS SELECT *
    FROM MATABLE@DBLINK;
    commit;

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

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    impossible de faire du ON COMMIT sur une vue complexe... dont une vue qui contient un DB Link.

    Dans la référence au forum de Tom Kyte on peut lire :
    you cannot refresh on commit over a dblink, period.

    you cannot even capture a "commit" action from borland interbase in Oracle -
    think about it.

  6. #6
    Membre éclairé
    Inscrit en
    Décembre 2002
    Messages
    438
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 438
    Par défaut
    Merci pour vos réponses.

    J'explique mon problème.

    Dans notre SI nous avons plusieurs developpements internes utilisants chacun une base de données métier. Ces developpements internes utilisent tous des données communes (table de référence commune à tous par exemple la liste des sites). Nous stockons cela sur une base de données séparée. Aujourd'hui nous utlisons des DBLINK pour accéder a ces données depuis les bases de données métiers.

    Nous aimerions répliquer l'informations des tables de référence communes vers les bases de données métiers et nous voudrions dès qu'il y a une mise à jour, qu'elle soit repercuter casiment en temps réel sur les bases de données métiers.

    Connaissez-vous un mécanisme le permetant ?

Discussions similaires

  1. [Oracle 10g] cannot set sga_target
    Par falco- dans le forum Débuter
    Réponses: 21
    Dernier message: 19/11/2009, 10h57
  2. ORA-01102: cannot mount database in EXCLUSIVE mode
    Par ragasy29 dans le forum Administration
    Réponses: 1
    Dernier message: 19/04/2007, 08h37
  3. Réponses: 10
    Dernier message: 21/12/2006, 10h55
  4. Locale: Cannot set LC_ALL to default locale: No such file or directory
    Par Trillian dans le forum Mandriva / Mageia
    Réponses: 7
    Dernier message: 03/11/2006, 10h08
  5. Réponses: 2
    Dernier message: 23/06/2006, 20h34

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