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 parenthèse [11g]


Sujet :

Oracle

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    321
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 321
    Points : 109
    Points
    109
    Par défaut Problème de parenthèse
    Bonjour,

    j'ai une erreur de parenthèse dans ma procédure, j'ai conscience que ce n'est pas forcément un problème sympa à poser ici mais je ne vois tellement pas ou est mon erreur que je demande votre aide.
    mon erreur se situe à la ligne 34 qui correspond à l"execute immediat " en rouge
    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
     FOR I IN LISTE_DEP.FIRST..LISTE_DEP.LAST LOOP
     
         V_QUERY:= 'UPDATE SCHNEIDER.TABDSM SET ST_P_'||LISTE_DEP(I)||
         '=(SELECT LIBELLE_STATUT_PRESENCE FROM INPN.repartition_abdsm
         WHERE TABDSM.CD_REF=INPN.repartition_abdsm.CD_NOM and INPN.repartition_abdsm.CD_SIG=''INSEED'||LISTE_DEP(I)||''')
         WHERE EXISTS (SELECT LIBELLE_STATUT_PRESENCE FROM INPN.repartition_abdsm
         WHERE TABDSM.CD_REF=INPN.repartition_abdsm.CD_NOM and INPN.repartition_abdsm.CD_SIG=''INSEED'||LISTE_DEP(I)||''')';
         
        DBMS_OUTPUT.PUT_LINE(V_QUERY);
        DBMS_OUTPUT.PUT_LINE('');
    
         EXECUTE IMMEDIATE V_QUERY;
       
        V_QUERY:= 'UPDATE TABDSM SET ST_P_'||LISTE_DEP(I)||'
        = REPLACE (REPLACE(REPLACE(REPLACE(REPLACE(''ST_P_'||LISTE_DEP(I)||''',''Présence certaine'',''P''),''Présence probable'',''P''),''Absence liée à une disparition avérée'', ''A''),''Absence probable ou certaine'',''A''),''Pas d''information'', ''?'')';
        
        DBMS_OUTPUT.PUT_LINE(V_QUERY);
        DBMS_OUTPUT.PUT_LINE('');
        
         EXECUTE IMMEDIATE V_QUERY;
          
        V_QUERY:= 'UPDATE TABDSM SET ST_P_'||LISTE_DEP(I)||
        '=''P'' where CD_REF IN(Select cd_nom from TABDSM, INPN.SYNTHESE_DEPARTEMENTS where CD_REF=INPN.SYNTHESE_DEPARTEMENTS.CD_NOM and CD_SIG_DEP=''INSEED'||LISTE_DEP(I)||''' and DATE_SUP>''01/01/1950'')';  
          
        EXECUTE IMMEDIATE V_QUERY;
          
     END LOOP; 
    
    END;
    merci pour votre aide

  2. #2
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Customer Success Manager @Vertica
    Inscrit en
    Septembre 2008
    Messages
    8 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Customer Success Manager @Vertica
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 452
    Points : 17 820
    Points
    17 820
    Par défaut
    Trois lignes au dessus vous avez un DBMS_OUTPUT.PUT_LINE(V_QUERY);.

    Pouvez-vous fournir le retour de cette ligne ?

    Edit : ça vient d'ici :

  3. #3
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Customer Success Manager @Vertica
    Inscrit en
    Septembre 2008
    Messages
    8 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Customer Success Manager @Vertica
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 452
    Points : 17 820
    Points
    17 820
    Par défaut
    Il faut quadrupler la simple quote pour arriver à créer l'apostrophe au final.

    Je pense que vous avez aussi une coquille dans le premier replace, si vous mettez le nom de votre colonne entre quote, il devient une simple chaîne.

    Remplacez donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        V_QUERY:= 'UPDATE TABDSM SET ST_P_'||LISTE_DEP(I)||'
        = REPLACE (REPLACE(REPLACE(REPLACE(REPLACE(''ST_P_'||LISTE_DEP(I)||''',''Présence certaine'',''P''),''Présence probable'',''P''),''Absence liée à une disparition avérée'', ''A''),''Absence probable ou certaine'',''A''),''Pas d''information'', ''?'')';
    Par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        V_QUERY:= 'UPDATE TABDSM SET ST_P_'||LISTE_DEP(I)||'
        = REPLACE (REPLACE(REPLACE(REPLACE(REPLACE(ST_P_'||LISTE_DEP(I)||',''Présence certaine'',''P''),''Présence probable'',''P''),''Absence liée à une disparition avérée'', ''A''),''Absence probable ou certaine'',''A''),''Pas d''''information'', ''?'')';

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    321
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 321
    Points : 109
    Points
    109
    Par défaut
    ok merci:-)

    j'avais aussi une coquille dans le 3eme V_QUERY

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

Discussions similaires

  1. Problème de parenthèses dans un String
    Par cameron dans le forum Requêtes et SQL.
    Réponses: 11
    Dernier message: 15/10/2008, 07h15
  2. ALTER MODIFY problème de parenthèse
    Par ldims24 dans le forum SQL
    Réponses: 1
    Dernier message: 30/06/2008, 14h37
  3. [ANTLR] Problème de parenthèses imbriquées
    Par vkphoenixfr dans le forum Autres langages
    Réponses: 0
    Dernier message: 30/11/2007, 11h40
  4. [TP] Problème de parenthèse
    Par AjeAurel dans le forum Turbo Pascal
    Réponses: 10
    Dernier message: 13/11/2007, 21h55
  5. Problème de parenthèse
    Par kj_83 dans le forum C++Builder
    Réponses: 14
    Dernier message: 08/07/2006, 17h31

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