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 :

[PL/SQL] Generer du XML


Sujet :

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 2004
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 56
    Par défaut [PL/SQL] Generer du XML
    Bonjour,

    je génère un fichier xml à partir du code ci-dessous en pl/sql.
    Le problème est que que je le valide le document sur xmlspy.
    Il me signale des problèmes au niveau des cractères "éèü&".

    Je pense que mon fichier n'est pas conforme para rapport à l'encodage
    (encoding="UTF-8"?).

    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
    procedure extraction is 
    	buf		varchar2(32000);
    	xc		clob;
    	qryCtx		DBMS_XMLGEN.ctxHandle; 
    begin
    	qryCtx := dbms_xmlgen.newContext('SELECT * FROM HRIMV21_SUIVI_CANDIDAT WHERE rownum=1') ;
    	DBMS_XMLGEN.setRowTag(qryCtx, 'RESUME'); 
    	--DBMS_XMLGEN.setConvertSpecialChars (qryCtx,false);
    	xc:= DBMS_XMLGEN.getXML(qryCtx);
     
    	--xc:=DBMS_XMLGEN.convert(xc,'ENTITY_DECODE');
    	DBMS_XMLGEN.closeContext(qryCtx); 
     
    	buf:=dbms_lob.substr(xc);
     
    --	buf:=replace(buf,''','''');
    	htp.p(buf);
    exception
    when others then 
    htp.p(sqlerrm);
    end;
    résultat :
    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
    <?xml version="1.0"?>
    <ROWSET>
     <RESUME>
      <ID>18363</ID>
      <ID_CV>3113</ID_CV>
      <ENTITE>MAIL</ENTITE>
      <STADE_SUIVE>RAS</STADE_SUIVE>
      <DATE_ENTR>23/11/2002</DATE_ENTR>
      <RES>REFUS DÉFINITIF</RES>
      <HIS>Mise en NA RH. Lui avons suggérer de prendre un RV.</HIS>
      <LOC>DG</LOC>
      <COLL>DG</COLL>
      <DATE_S>23/11/2002</DATE_S>
      <ID_FICHE_CONTACT>18362</ID_FICHE_CONTACT>
      <DATE_RAPPEL>24/11/2002</DATE_RAPPEL>
      <CUSTOMER_ID>1</CUSTOMER_ID>
      <ENTITE_ID>3</ENTITE_ID>
      <STADE_SUIVI_ID>6</STADE_SUIVI_ID>
      <RES_ID>10</RES_ID>
     </RESUME>
    </ROWSET>
    Pouvez-vous m'aider et me dire si'il existe une fonction qui permettrait de faire de l'encode.

    merci.

  2. #2
    Membre Expert
    Avatar de LeoAnderson
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 2 938
    Par défaut
    je ne suis pas spécialiste du XML mais il me semble bien qu'il y a une balises spéciale permettant de spécifier l'encodage utilisé, non ?

    Sinon, sous Oracle, il y a la fonction CONVERT mais je ne pense pas que cela corresponde à vos besoins...

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 56
    Par défaut
    peut -etre sais tu comment on passe de <?xml version="1.0" ?> à <?xml version='1.0' encoding='UTF-8'?>

    merci

  4. #4
    Membre Expert
    Avatar de LeoAnderson
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 2 938
    Par défaut
    D'après la doc : http://download-uk.oracle.com/docs/c...htm#sthref1605

    The CLOB value returned by getXML() has the same encoding as the database character set. If the database character set is SHIFTJIS, then the XML document returned is also SHIFTJIS.

  5. #5
    Membre chevronné
    Avatar de argoet
    Inscrit en
    Mai 2002
    Messages
    582
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 582
    Par défaut
    J'ai la meme chose à réaliser : Mais je suis toujours confronté au meme probleme : A chaque fois les exemples proposés sont systématiquement tronqué à 32000 Caractères

    Question : Comment générer le contenu d'une table par exemple au format XML (Sans limite de taille)

  6. #6
    Invité de passage
    Inscrit en
    Janvier 2005
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 1
    Par défaut --DBMS_XMLGEN.setConvertSpecialChars (qryCtx,false);
    Salut,

    il faut décommenter la ligne suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    --DBMS_XMLGEN.setConvertSpecialChars (qryCtx,false);
    et mettre true à la place de false...
    cela permet de gérer les caractètres spéciaux.

    Par contre, ne fonctionne qu'en oracle 9i..

    A+

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    117
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 117
    Par défaut
    Citation Envoyé par squalito
    -- buf:=replace(buf,'&apos;','''');
    juste une question, il n'y a pas d'autre moyen de supprimer le &apos quand on génére un fichier XML?

Discussions similaires

  1. creation d'une fonction SQL pour generer du XML
    Par MuldyMath dans le forum Oracle
    Réponses: 3
    Dernier message: 07/06/2006, 11h22
  2. Type "Bit" SQL server en XML lors d'une XMLInstruc
    Par mchicoix dans le forum XMLRAD
    Réponses: 3
    Dernier message: 15/02/2006, 15h44
  3. generer du xml a partir d'excel
    Par jolio dans le forum XML/XSL et SOAP
    Réponses: 3
    Dernier message: 09/09/2005, 16h33
  4. Generer un XML via un schema XSD
    Par manu00 dans le forum Valider
    Réponses: 1
    Dernier message: 26/07/2005, 13h34
  5. Generer du xml via SQL(oracle) avec de l'asp
    Par jpg dans le forum XQUERY/SGBD
    Réponses: 6
    Dernier message: 03/08/2004, 12h36

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