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 :

CLOB vers un fichier xml sur le disque


Sujet :

Oracle

  1. #1
    Futur Membre du Club
    Inscrit en
    Avril 2008
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 12
    Points : 6
    Points
    6
    Par défaut CLOB vers un fichier xml sur le disque
    Bonjour,
    Je bloque depuis la semaine dernière sur un problème.
    Je voudrais extraire de ma base de donnée, le contenu d'un champ CLOB dans un fichier au format xml sur le disque. Le clob est lui même au format xml dans la base.
    J'arrive à extraire le contenu du clobb mais le formatage des balises dans le fichier de destination n'est pas bon.
    En fait j'ai des retou à ligne avant le fermeture de certaines balise.
    Je ne peut utiliser le package UTL_FILE.

    Merci d'avance.

    Ma procédure pour extraire le clob est la suivante:

    DECLARE
    vclob CLOB;
    str VARCHAR2(4000);
    vstart NUMBER := 1;
    bytelen NUMBER := 2000;
    len NUMBER;
    x NUMBER;

    BEGIN
    -- get length of blob
    SELECT dbms_lob.getlength(fxl_a_xml)
    INTO len
    from formulaire.formulaire_xml fx, formulaire.formulaire f
    where fx.frm_id = f.frm_id
    and f.frm_id = &frm_id
    ;

    -- save blob length
    x := len;

    -- select blob into variable
    SELECT fxl_a_xml
    INTO vclob
    from formulaire.formulaire_xml fx, formulaire.formulaire f
    where fx.frm_id = f.frm_id
    and f.frm_id = &frm_id
    ;

    dbms_output.ENABLE(100000);
    dbms_output.put_line('Le XML fait ' || len || ' octets de long');
    vstart := 1;
    WHILE vstart < len and bytelen > 0
    LOOP
    -- set the end position if less than bytelen bytes left
    IF x < bytelen THEN
    bytelen := x;
    END IF;

    dbms_lob.read(vclob,bytelen,vstart,str);

    dbms_output.put_line(SUBSTR(str,1,INSTR (str, CHR(10))));
    str:=SUBSTR(str,INSTR (str, CHR (10))+1);
    dbms_output.put(str);

    vstart := vstart + bytelen;
    x := x - bytelen;
    end loop;

    dbms_output.put_line('');
    dbms_output.put_line('Fin avec succès');

    END;
    /

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Février 2007
    Messages
    260
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 260
    Points : 281
    Points
    281
    Par défaut Utiliser un select direct sous sqlplus
    Bonjour,

    Plutôt que pour faire du dbms_output vous pouvez carrément faire un select du champ sous sqlplus avec le spool qui va bien.

    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
     
    WHENEVER SQLERROR exit 1
    WHENEVER OSERROR exit 2
     
    -- Environnement SqlPlus
    set echo      off
    set feedback  off
    set heading   off
    set linesize  500
    set long      10000000
    set longchunksize 500
    set pagesize  0
    set termout off
    set trimout   on
    set trimspool on
    set wrap      on
     
    -- Parametres
    define frm_id='&&1'
     
    spool mon_fichier&frm_id..xml
    Select fxl_a_xml
      From formulaire.formulaire_xml fx,
           formulaire.formulaire     f
     Where fx.frm_id = f.frm_id
       And f.frm_id = &frm_id;
    spool off
     
    exit;
    Pozzo

Discussions similaires

  1. Accéder à un fichier xml sur disque réseau
    Par multimania dans le forum ActionScript 3
    Réponses: 0
    Dernier message: 08/11/2011, 08h52
  2. [HTML] Formulaire HTML vers un fichier XML
    Par Badaboumpanpan dans le forum Balisage (X)HTML et validation W3C
    Réponses: 7
    Dernier message: 24/05/2006, 23h26
  3. Réponses: 3
    Dernier message: 05/12/2005, 14h17
  4. Réponses: 29
    Dernier message: 28/07/2005, 13h41
  5. Utiliser un fichier XML sur un serveur FTP
    Par ired dans le forum Bases de données
    Réponses: 1
    Dernier message: 06/04/2005, 13h43

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