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

SQL Oracle Discussion :

passer du insert/update à MERGE


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Juin 2007
    Messages
    328
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 328
    Par défaut passer du insert/update à MERGE
    Bonjour ,
    je voudrais passer de ca :
    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
     
    CREATE OR REPLACE TRIGGER trigger_champs BEFORE UPDATE OR INSERT ON PERSONNES
    FOR EACH ROW
    DECLARE
    compt INTEGER;
    valeur VARCHAR(10);
    BEGIN
    if (:new.diffphoto = '1') then 
       valeur:='O' ;
    else valeur:='N';
    end if;
    update asynchrone@exportSynchrone set diffphoto = valeur  ,
    date_maj= NVL(:new.date_maj, NVL( :new.dat_creation, '01/01/1999')) where id_personne 
    = substr(:new.id_personne ,1,(length( :new.id_personne )-12)) ; 
    if  SQL%ROWCOUNT = 0 then
     insert into asynchrone@exportSynchrone (diffphoto ,date_maj,id_personne)
    Values (valeur  ,NVL(:new.date_maj, NVL(:new.dat_creation, '01/01/1999'))
    ,substr(:new.id_personne,1,(length(:new.id_personne)-12)) ) ;   
    end if ; 
    END ;
    a MERGE , parce que sql%rowcount me renvoit tjrs la valeur 0 , meme si je viens de faire un insert
    comment le faire ?

  2. #2
    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
    Citation Envoyé par zaineb.z Voir le message
    a MERGE , parce que sql%rowcount me renvoit tjrs la valeur 0 , meme si je viens de faire un insert
    comment le faire ?
    Je dirais même que SQL%ROWCOUNT est forcément égal à 0 si tu fais l'insertion... vu que c'est la condition

    Vérifie que le WHERE est correct avec un SELECT

  3. #3
    Membre éclairé
    Inscrit en
    Juin 2007
    Messages
    328
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 328
    Par défaut
    le where est bon et puis , vous savez, quand je defini ma base locale en tant que bd distante , tout marche a merveille , je sais pas pourquoi ca deconne

  4. #4
    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
    tu es sûr que le WHERE est sensé récupérer des lignes sur la base distante ? T'as des doublons sur la base distante qui permettraient de démontrer qu'il y a bien un INSERT au lieu d'un UPDATE ?

  5. #5
    Membre éclairé
    Inscrit en
    Juin 2007
    Messages
    328
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 328
    Par défaut
    au faite , c'est bizarre mais bon.. lorsque je supprime un autre trigger qui se declenche en meme evenement declencheur du trigger "trigger_champs" tout marche tres bien.
    comment faire pr "synchroniser" le fonctionnement des deux triggers? a titre d'information : ils agissent sur la meme table avec les memes evenements declencheurs .

  6. #6
    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
    et on devine le code pour trouver le problème ?

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 16/10/2014, 11h19
  2. [AC-2010] Passer de INSERT/INTO a UPDATE
    Par Timil dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 26/05/2011, 18h36
  3. Réponses: 4
    Dernier message: 05/04/2005, 18h28
  4. Redirect de la page après un insert/update/delete
    Par mchicoix dans le forum XMLRAD
    Réponses: 5
    Dernier message: 25/02/2005, 09h31
  5. [Info] Insert/Update si problèmes divers
    Par portu dans le forum Bases de données
    Réponses: 4
    Dernier message: 15/07/2004, 10h17

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