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 :

Trigger pour faire une table "mirroir"


Sujet :

Oracle

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2005
    Messages : 59
    Points : 46
    Points
    46
    Par défaut Trigger pour faire une table "mirroir"
    Bonjour!

    J'ai besoin de faire une copie d'une table qui se trouve sur une base sur une autre. Pour passer les infos de l'une à l'autre, j'utilise des DB_LINKS, mais je ne peux pas faire que l'une est une vue sur l'autre, car la copie est sur Oracle8i et l'autre sur Oracle9i et on arrive à faire le lien que dans le sens 9i -> 8i... Donc il me reste 2 solutions, passer par une SP qui serait lancée tous les soirs qui vide la table copiée et y met toutes les données de l'originale (DELETE FROM puis INSERT INTO SELECT) mais c'est un peu brutal... L'autre solution à laquelle javais pensé c'était de mettre un trigger sur la table originale qui à chaque INSERT, UPDATE, DELETE repproduit la même requête que celle qui lui est soumise. Maintenant ca je ne sais pas le faire...
    Est-ce qu'il existe un truc pour récupérer la requete?

    Jespere m'etre bien exprimé merci

  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
    Et pourquoi pas une vue matérialisée : http://www.developpez.net/forums/viewtopic.php?t=411053

    c'est fait pour ça

    Le trigger c'est pas mal mais très couteux et surtout que se passe-t-il en cas de défaillance du DBLink ? Cela risque fort de perturber le fonctionnement de la mise à jour

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2005
    Messages : 59
    Points : 46
    Points
    46
    Par défaut
    Oui mais le problème c'est que les DB_LINKS ne fonctionnent que de la 9i vers la 8i, pas dans l'autre sens... Alors ca ne va pas pour une vue.
    Alors je ne sais pas ce qui fait la difference avec une vue matérialisée, est-ce qu'elle est crée depuis la DB source?

  4. #4
    Membre averti
    Inscrit en
    Novembre 2002
    Messages
    549
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 549
    Points : 436
    Points
    436
    Par défaut
    et pourquoi pas un simple export/import ma_table quotidien ?
    PpPool

  5. #5
    Rédacteur

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 320
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 320
    Points : 3 798
    Points
    3 798
    Par défaut
    Bonjour ,
    Est ce que vous êtes sur qu'un lien de bases de données n'est pas pas possible d'une 8i vers une 9i .

    Car le DB link s'appuie sur une couche net*8 et donc cela est à mon avis possible

    Mais il est possible que je me trompe ...

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2005
    Messages : 59
    Points : 46
    Points
    46
    Par défaut
    Pour le DB link, c'est ce que m'a dit le dba ^^ Je me suis pas amusé à essayer dans son dos...
    Mais effectivement, si je ne trouve pas de solution, je vais passer par une màj quotidienne.

  7. #7
    Rédacteur

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 320
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 320
    Points : 3 798
    Points
    3 798
    Par défaut
    Je n'en suis pas sûr et d'ailleurs j'ai testé :

    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
    SQL> show release ; 
    release 801070400
    SQL> select count (*) from user_tables@oidprd
      2  ;
     
      COUNT(*)
    ----------
           130
     
    SQL> disconn 
    Déconnecté de Oracle8i Enterprise Edition Release 8.1.7.4.0 - 64bit Production
    JServer Release 8.1.7.4.0 - 64bit Production
    SQL> set instance oidprd 
    Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production
    With the OLAP and Oracle Data Mining options
    JServer Release 9.2.0.1.0 - Production

  8. #8
    Membre expert

    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2004
    Messages
    2 862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 862
    Points : 3 609
    Points
    3 609
    Par défaut
    Je suis tout à fait d'accord avec Jaouad, il est possible de faire des dblinks de 8i vers 9i.
    Un problème sans solution est un problème mal posé

    Merci de poser vos questions sur le forum, je ne réponds pas aux questions posées par MP.

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2005
    Messages : 59
    Points : 46
    Points
    46
    Par défaut
    Ok alors, je vais essayer de le lui demander. C'est vrai que ca serait quand meme le plus simple...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Trigger pour vider une table avant insertion
    Par renardchan dans le forum Requêtes
    Réponses: 4
    Dernier message: 17/01/2011, 15h41
  2. insert pour faire une table de temps
    Par PAYASS59 dans le forum SQL
    Réponses: 7
    Dernier message: 02/07/2010, 07h52
  3. trigger pour limiter une table
    Par galsen3 dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 09/06/2009, 14h45

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