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 :

prob d'insertion dans la table


Sujet :

SQL Oracle

  1. #1
    Membre régulier
    Inscrit en
    Juin 2007
    Messages
    328
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 328
    Points : 115
    Points
    115
    Par défaut prob d'insertion dans la table
    Bonsoir,
    je sais pas pourquoi mon trigger tourne bien lorsque je remplace la table "asynchrone@exportsynchrone" par la table "personnes@exportsynchrone"
    voila le code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    CREATE OR REPLACE TRIGGER trigger_photo AFTER UPDATE OR INSERT ON PERSONNES
    FOR EACH ROW
    DECLARE 
    res varchar(20);
    id_p varchar(20);
    BEGIN
    id_p := substr(:new.id_personne,1,(length(:new.id_personne)-12));
    res := remplir_table (:new.id_personne);
    update asynchrone@exportsynchrone  a set stockage_photo = 
    ( select stockage_photo from copie where id_personne = :new.id_personne ) where a.id_personne = id_p ;
    res := vider_table(:new.id_personne);
    END ;
    sachant que ,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    personnes@exportsynchrone.id_personne= :new.id_personne
    alors
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    que asynchrone@exportsynchrone.id_personne= substr(:new.id_personne,1,(length(:new.id_personne)-12))

  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
    Tu vas créer combien de topic pour le même problème ?

    Merci de ne plus en créer si ça concerne toujours le même trigger.

  3. #3
    Membre régulier
    Inscrit en
    Juin 2007
    Messages
    328
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 328
    Points : 115
    Points
    115
    Par défaut
    je ne m'amuse pas a creer des topics gratuitement , si j'en cree un c'est que vraiment j'ai besoin que quelqu'un m'aide

  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
    Sauf qu'il concerne toujours le même sujet. C'est un problème de débuggage, on ne connait pas le contexte ni ton appli, comment veut tu qu'on t'aide.

    je sais pas pourquoi mon trigger tourne bien lorsque je remplace la table "asynchrone@exportsynchrone" par la table "personnes@exportsynchrone"
    j'vois pas comment on pourrait savoir pour toi d'autant qu'on n'a aucune explication du problème rencontré

  5. #5
    Membre régulier
    Inscrit en
    Juin 2007
    Messages
    328
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 328
    Points : 115
    Points
    115
    Par défaut
    je tiens a signaler que meme si c'est tjrs le meme topic ,ca traite pas le meme probleme, et puis la majorité des problemes que j'ai posté personne ne m'a vraiment aidé surtout dans la partie qui concerne :" la maj des champs BLOB dans une BD distante " mais j'ai réussi à la faire toute seule en fin de compte , et c'est une solution que tout le monde pourra en beneficier puisque je l'ai posté.

    concernant mon dernier probleme , il s'agit de mon eternel trigger , mais cette fois ci , je ne sais pas pourquoi il ne met pas a jour ma table "asynchrone@exportsynchrone" alors qu'il met a jour la table "personnes@exportsynchrone"
    je ne sais pas comment debugger ni comment proceder pour connaitre ou est le probleme..

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    354
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 354
    Points : 436
    Points
    436
    Par défaut
    Comment tu constate exactement que la table n'est pas mise à jour? Commnet tu constate que l'autre table est bien mise à jour?
    Consultant et formateur Oracle

  7. #7
    Membre régulier
    Inscrit en
    Juin 2007
    Messages
    328
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 328
    Points : 115
    Points
    115
    Par défaut
    je le constate lorsque je fais un :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select id_personne from asynchrone@exportsynchrone where stockage_photo is not null ;
    lorsqu'il me retourne
    cela veut dire qu'il n'a pas mis le champ a jour , parce que avant de "lancer" le trigger je met le champs "stockage_photo" à NULL

  8. #8
    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
    t'as fait un commit bien sûr ?

  9. #9
    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
    Citation Envoyé par zaineb.z Voir le message
    je ne sais pas comment debugger ni comment proceder pour connaitre ou est le probleme..
    Je suis navré mais t'es mal barré en info si tu pars comme ça

    Tu pourrais commencer par essayer :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    DBMS_OUTPUT.PUT_LINE(:new.id_personne);
    UPDATE asynchrone@exportsynchrone  a SET stockage_photo = 
    ( SELECT stockage_photo FROM copie WHERE id_personne = :new.id_personne ) WHERE a.id_personne = id_p ;
    DBMS_OUTPUT.PUT_LINE(SQL%ROWCOUNT);
     
    res := vider_table(:new.id_personne);
    DBMS_OUTPUT.PUT_LINE(res);

  10. #10
    Membre régulier
    Inscrit en
    Juin 2007
    Messages
    328
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 328
    Points : 115
    Points
    115
    Par défaut
    Bonjour
    au faite je l'ai deja fait , les valeurs sont bonnes , j'ai fait un affichage de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    id_p := substr(:new.id_personne,1,(length(:new.id_personne)-12));
    bien avant que je poste le probleme , j'ai enlevé le teste du code pour qu'il soit comprehensible
    lorsque je tape la requete update directement dans sql*plus avec des valeurs, l'update passe,
    vraiment la , je desespere...

  11. #11
    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
    Réessaye en mettant ceci en commentaire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    res := vider_table(:new.id_personne);

  12. #12
    Membre régulier
    Inscrit en
    Juin 2007
    Messages
    328
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 328
    Points : 115
    Points
    115
    Par défaut
    meme chose...au faite la fct
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    vider_table(:new.id_personne)
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    remplir_table(:new.id_personne)
    renvoient des valeurs fixes qui n'ont pas de signification ,normalement j'ai du travailler avec les procedure plutot qu'une fonction mais j'avais besoin d'une
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    pragma atonomous transaction
    pour contourner l'erreur Bref, tous les tests sont bons , qu'est ce que je dois faire d'autres ?

  13. #13
    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
    Citation Envoyé par zaineb.z Voir le message
    renvoient des valeurs fixes qui n'ont pas de signification
    ouais mais elles font quelque chose non ? En les commentant tu as le même résultat ?

    T'as pas répondu à ma question non plus : Fais tu bien un commit après la mise à jour de la table PERSONNES ?

  14. #14
    Membre régulier
    Inscrit en
    Juin 2007
    Messages
    328
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 328
    Points : 115
    Points
    115
    Par défaut
    ouii je fais un commit apres la MAJ de la table personnes
    concernant les 2 fonctions , j'ai fait le test : je n'ai pas vidé la table , j'ai fait un affichage du contenu de la table copie juste aprés l'update , elle contient bien les elements que j'ai mis a jour.
    j'ai deja dit que lorsque je remplace la table distante "asynchrone" par la table distante "personnes" les mise a jour sont effectués .

  15. #15
    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 qu'est ce que tu veux qu'on te réponde ? Vérifie que t'as pas un trigger qui pose problème sur cette table, des privilèges insuffisants ou autres... faut chercher un peu tout seul hein

  16. #16
    Membre régulier
    Inscrit en
    Juin 2007
    Messages
    328
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 328
    Points : 115
    Points
    115
    Par défaut
    j'ai verifié tout ce que tu viens de dire avant que je poste mon probleme , je ne suis pas si paresseuse que ca ,
    je soupsonne l'existance des espaces a la fin de id_personne de la table "asynchrone@exportsynchrone" puisque lorsque je tape la commande de l'update directement dans sql*plus , l'update passe .
    comment passer mon
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    substr(:new.id_personne,1,(length(:new.id_personne)-12))
    dans

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    trim(both ' ' from chaine')
    parce que ca passe pas lorsque je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    trim( both ' ' from ''||substr(:new.id_personne,1,(length(:new.id_personne)-12))||'')

  17. #17
    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
    vérifie ton hypothèse avec un LIKE alors et affiche la longueur de la chaine pour en avoir le coeur net... je ne doute pas que tu n'es pas paresseux mais j'ai du mal à comprendre comment on peut t'aider

  18. #18
    Membre régulier
    Inscrit en
    Juin 2007
    Messages
    328
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 328
    Points : 115
    Points
    115
    Par défaut
    Bonne nouvelle ! ca a marché , mais ce serait un peu "dangereux" de laisser
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    where id_personne like substr(:new.id_personne,1,(length(:new.id_personne)-12))||'%' ;
    mais ca marche pas avec trim

  19. #19
    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 RTRIM ?

    PS : tu te rends compte que tu as trouvé le problème tout seul ?

  20. #20
    Membre régulier
    Inscrit en
    Juin 2007
    Messages
    328
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 328
    Points : 115
    Points
    115
    Par défaut
    bah voila je réussis tjrs a le trouver toute seule alors qu'hier t'etais sur le point de me bannir du forum

    tjrs meme prob
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    where id_personne like RTRIM ( substr('1010Mone3350000F',1,(length ('1010Mone3350000F')-12))) ;

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [ZEOSLIB] Problème Insertion dans une table
    Par moscovisci dans le forum Bases de données
    Réponses: 1
    Dernier message: 09/06/2005, 12h05
  2. [interbase6]probleme d'insertion dans une table
    Par macadam314 dans le forum Bases de données
    Réponses: 10
    Dernier message: 22/02/2005, 14h21
  3. [Sybase] Temps d'une insertion dans une table
    Par vsavoir dans le forum Décisions SGBD
    Réponses: 5
    Dernier message: 14/02/2005, 10h04
  4. Extraction d'un .txt et Insertion dans une table
    Par PoPmiSiR dans le forum Access
    Réponses: 8
    Dernier message: 28/10/2004, 19h13
  5. Détection insertion dans une Table
    Par abelman dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 06/07/2004, 14h24

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