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 :

[Oracle] Importer du xml dans une table


Sujet :

Oracle

  1. #1
    Membre habitué
    Inscrit en
    Novembre 2004
    Messages
    469
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 469
    Points : 167
    Points
    167
    Par défaut [Oracle] Importer du xml dans une table
    Salut à tous,

    je dispose d'un fichier xml avec des balises xml et des valeurs.
    J'ai une table en base de données.

    J'aimerais savoir s'il est possible à partir de ce fichier xml de populer ma table par commande sql ou autre.

    Cela m'éviterai de tout rentrer à la mano.

    merci pour vos réponses
    ----------------------------------
    La façon la plus efficace de combattre un système qui ne nous convient plus
    n'est pas de lutter contre lui mais de s'en désintéresser et de ne plus l'alimenter...

    ----------------------------------

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Avril 2006
    Messages : 133
    Points : 165
    Points
    165
    Par défaut
    Exemple de code à l'intérieur du fichier xml2.xml stocké dans /partage :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
     
    <mon_doc>
       <ROW num="1">
          <NB1>123</NB1>
          <CHPS1>toto1</CHPS1>
          <CHPS2>toto2</CHPS2>
          <CHPS3>toto3</CHPS3>
          <DAT1>01/03/2004 13:35:59</DAT1>
       </ROW>
    </mon_doc>
    Chargement :

    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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
     
    conn user/user@base
     
    drop table test_xml;
     
    create table test_xml (
    nb1 number,
    chps1 varchar2(5),
    chps2 varchar2(5),
    chps3 varchar2(5),
    nb2 number,
    DAT1 date,
    chps4 varchar2(5));
     
     
     
    CREATE OR REPLACE procedure insert_xml( p_directory in varchar2,
                                            p_filename  in varchar2,
                        vtableName  in varchar2 )
    AS
         v_filelocator bfile;
         v_cloblocator clob;
         l_ctx         DBMS_XMLSAVE.ctxType;
         insCtx DBMS_XMLSave.ctxType;
         l_rows        number;
    BEGIN
           DBMS_LOB.createtemporary( v_cloblocator, true );
          v_filelocator := bfilename( p_directory, p_filename );
         DBMS_LOB.open( v_filelocator, dbms_lob.file_readonly );
       DBMS_LOB.loadfromfile( v_cloblocator, v_filelocator, dbms_lob.getlength( 
    v_filelocator ) );
           l_ctx := DBMS_XMLSAVE.newContext( vTableName );
    DBMS_XMLSave.setDateFormat(insCtx, 'dd/MM/yyyy HH:mm:ss');
       l_rows := DBMS_XMLSAVE.insertxml( l_ctx, v_cloblocator );
           DBMS_XMLSAVE.closeContext( l_ctx );
           DBMS_OUTPUT.put_line( l_rows || ' rows inserted...');
           DBMS_LOB.close( v_filelocator );
           DBMS_LOB.FREETEMPORARY( v_cloblocator );
        EXCEPTION
             WHEN OTHERS THEN
              DBMS_LOB.filecloseall;
              raise;
    END insert_xml;
    /
     
     
     
    CREATE OR REPLACE DIRECTORY path AS '/partage';
     
    exec insert_xml( 'PATH','xml2.xml','test_xml');
     
     
    commit;
     
    select * from test_xml;

  3. #3
    Membre habitué
    Inscrit en
    Novembre 2004
    Messages
    469
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 469
    Points : 167
    Points
    167
    Par défaut
    Merci je vais regarder tout ceci
    ----------------------------------
    La façon la plus efficace de combattre un système qui ne nous convient plus
    n'est pas de lutter contre lui mais de s'en désintéresser et de ne plus l'alimenter...

    ----------------------------------

Discussions similaires

  1. Importer *.xml dans une table
    Par skippy86 dans le forum VBA Access
    Réponses: 2
    Dernier message: 13/10/2010, 10h08
  2. [SSIS] [2K8] importer fichier xml dans une table
    Par Tankian dans le forum SSIS
    Réponses: 1
    Dernier message: 15/04/2009, 12h34
  3. import fichier XML dans une table oracle 10g
    Par aijedelachance dans le forum Import/Export
    Réponses: 0
    Dernier message: 08/02/2009, 21h52
  4. Réponses: 2
    Dernier message: 08/01/2009, 14h20
  5. [SimpleXML] Importer un flux XML dans une table
    Par antitrust56 dans le forum Bibliothèques et frameworks
    Réponses: 5
    Dernier message: 26/09/2008, 19h10

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