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

PL/SQL Oracle Discussion :

Problème de quotes insoluble?


Sujet :

PL/SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 62
    Par défaut Problème de quotes insoluble?
    Bonsoir tous !

    Au sein d’une procédure PLSql employant une fonction :
    - qui récupère directement les noms des champs comme nom de noeud xml puis leurs valeurs comme valeur de noeud bien entendu, ainsi que le package DBMS_XMLDOM
    - pour l'exploitation par la suite de ces noeuds,

    imaginez une requête tenue entre quotes du type 'select blabla' pour pouvoir être insérée dans une variable. (Rem: Délimitation impossible de cette requête avec des doubles quotes, j'ai déjà essayé )

    Et, que dans les champs que l’on souhaite rapatrier il y ait une concaténation de 2 valeurs, provenant de 2 champs de la table donc, que l’on identifie par un simple alias, mais dont on veut tout de même pouvoir distinguer l'une de l'autre à l’aide d’un séparateur point virgule positionné entre les deux.

    Telle que (je l'ai) rédigé de cette façon :
    VarChaine:='select champ1 ||' ';' '|| champ2 as CONCATVALS from matable' et bien problème, car ceci ne fonctionne pas parce que le point virgule générera une exception parser java lang lors de l’emploi d’un getNodeValue() sur le nœud xml généré :

    Cead qu’il butera sur le nœud généré < CONCATVALS>ValChamp1;ValChamp2< CONCATVALS />

    Une proposition pour échapper le point virgule ?

    J’ai fait pleins d’essais sans succès, que ce soit avec le caractère \ ou l’enveloppement par {}, caractères d'échappement mais je ne sais peut être pas bien agencer comme il faut;

    Alors merci d'avance à l'esprit éclairé qui saura me montrer sa lumière

  2. #2
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 454
    Par défaut
    Votre caractère spécial devrait être traduit !
    Que dit votre parser java si vous écrivez ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    VarChaine := 'select champ1 || ' '&.#.5.9.;' ' || champ2 as CONCATVALS from matable';
    J'ai mis des points entre chaque caractères car le forum réinterprète ce code en point-virgule, il vous faudra les enlever.

  3. #3
    Membre habitué
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mars 2011
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Mars 2011
    Messages : 15
    Par défaut "Cacher" le caractère génant
    Bonjour,
    quand j'ai ce genre de problème je le contourne en utilisant la fonction CHR :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    VarChaine:='select champ1 || '''' || chr(59) || '''' || champ2 as CONCATVALS from matable' 
     
    chr(59) = ';'
    si vous êtes en ASCII :

    en base :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    select ascii(';') from dual;
     
    ASCII(';')
    ----------
            59
     
    select chr(59) from dual;
     
    C
    -
    ;
    Salutations

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

Discussions similaires

  1. [Système] Problème de quote
    Par mikebranque dans le forum Langage
    Réponses: 1
    Dernier message: 25/05/2006, 17h38
  2. Problème de quote avec XPath
    Par fadjerx dans le forum XSL/XSLT/XPATH
    Réponses: 5
    Dernier message: 23/03/2006, 14h45
  3. [JS] Problème de quotes pour enregistrer un formulaire.
    Par polnioumane dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 24/10/2005, 17h04
  4. Problème de quotes sous PostGre
    Par Philhz dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 11/07/2004, 13h03
  5. Problème de quote
    Par kennini dans le forum ASP
    Réponses: 4
    Dernier message: 20/11/2003, 09h40

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