1. Get rid of all advertisements and get unlimited access to documents by upgrading to Premium Membership. Upgrade to Premium Now and also get a Premium Badge!

How to load data from XML file to an Oracle table

Discussion in 'SQL PL/SQL' started by anirbanmukherjee86, Jan 27, 2014.

  1. anirbanmukherjee86

    anirbanmukherjee86 Active Member

    Messages:
    3
    Likes Received:
    0
    Trophy Points:
    55
    Hi,

    I am having a XML file with attached content.

    If you check the XML you will find that under Table tag there are three Row Tags, among which the first Row Tag contains the column header and remaining two is teh data. Overall, this xml is having two records with their column header. Now I need to load this data in ORACLE table. Could anyone please help me or guide regarding this. I am using Oracle 10g R2 database.
     

    Attached Files:

  2. krasnoslobodtsev_si

    krasnoslobodtsev_si Forum Genius

    Messages:
    626
    Likes Received:
    129
    Trophy Points:
    810
    Location:
    Russian Federation
    see links :
    XML_DB
    USING XML Parser

    examples :
    load external xml
    parse xml docs


    sample example of parsing :

    Code (SQL):

    SELECT
              col1  ,
              col2  ,          
              col3  ,          
              col4  ,          
              col5  ,
              col6  ,
              col7  ,          
              col8  ,          
              col9  ,          
              col10 ,          
              col11 ,
              col12 ,          
              col13 ,          
              col14 ,          
              col15 ,
              col16 ,
              col17 ,          
              col18 ,          
              col19 ,          
              col20 ,          
              col21 ,
              col22 ,          
              col23 ,          
              col24 ,          
              col25           FROM XMLTABLE('
       for $i in    /Worksheet/Table
                      return $i/Row'

             PASSING XMLType('<?xml version="1.0"?>
     <Worksheet>
      <Table>
       <Row>
        <Cell><Data>ACCION</Data></Cell>
        <Cell><Data>Numero Maestro de sF</Data></Cell>
        <Cell><Data>Articulo</Data></Cell>
        <Cell><Data>Version</Data></Cell>
        <Cell><Data>Numero de peticion de sF</Data></Cell>
        <Cell><Data>Organizacion</Data></Cell>
        <Cell><Data>Codigo de planta</Data></Cell>
        <Cell><Data>Codigo de bodega</Data></Cell>
        <Cell><Data>Tipo de material</Data></Cell>
        <Cell><Data>Fecha de creacion</Data></Cell>
        <Cell><Data>Grupo de Material</Data></Cell>
        <Cell><Data>Fabricante (codigo)</Data></Cell>
        <Cell><Data>Numero de parte</Data></Cell>
        <Cell><Data>Descripcion corta (Ingles)</Data></Cell>
        <Cell><Data>Descripcion larga (Ingles)</Data></Cell>
        <Cell><Data>Descripcion corta (Espanol)</Data></Cell>
        <Cell><Data>Descripcion larga (Espanol)</Data></Cell>
        <Cell><Data>Medida Base</Data></Cell>
        <Cell><Data>CATEGORIAS</Data></Cell>
        <Cell><Data>HACER O COMPRAR</Data></Cell>
        <Cell><Data>METODO PLANIFICACION INVENTARIO</Data></Cell>
        <Cell><Data>PLANIFICADOR</Data></Cell>
        <Cell><Data>PRECIO LISTA</Data></Cell>
        <Cell><Data>TIPO</Data></Cell>
        <Cell><Data>TIPO DE ART. DE USUARIO</Data></Cell>
       </Row>
       <Row>
        <Cell><Data>Actualizar</Data></Cell>
        <Cell><Data>9142088</Data></Cell>
        <Cell><Data></Data></Cell>
        <Cell><Data>1</Data></Cell>
        <Cell><Data>5</Data></Cell>
        <Cell><Data>07_BIENES</Data></Cell>
        <Cell><Data>B01</Data></Cell>
        <Cell><Data>PRINCIPAL</Data></Cell>
        <Cell><Data>Spare Parts</Data></Cell>
        <Cell><Data>26/11/2013</Data></Cell>
        <Cell><Data>Material Group</Data></Cell>
        <Cell><Data>MAN00003324</Data></Cell>
        <Cell><Data>HJHJHJH</Data></Cell>
        <Cell><Data>ABRASIVE BEAD; GLASS, 120</Data></Cell>
        <Cell><Data>ABRASIVE BEAD~MATERIAL: GLASS~GRIT: 120</Data></Cell>
        <Cell><Data>GRANO ABRASIVO; VIDRIO, 120</Data></Cell>
        <Cell><Data>GRANO ABRASIVO~MATERIAL: VIDRIO~GRANO: 120</Data></Cell>
        <Cell><Data>can</Data></Cell>
        <Cell><Data>Utiles y Materiales El├ęctricos</Data></Cell>
        <Cell><Data>COMPRAR</Data></Cell>
        <Cell><Data>CONPLAN</Data></Cell>
        <Cell><Data>JUAN</Data></Cell>
        <Cell><Data>1</Data></Cell>
        <Cell><Data>2</Data></Cell>
        <Cell><Data>07_BIENES</Data></Cell>
       </Row>
       <Row>
        <Cell><Data>Actualizar</Data></Cell>
        <Cell><Data>9142088</Data></Cell>
        <Cell><Data></Data></Cell>
        <Cell><Data>1</Data></Cell>
        <Cell><Data>5</Data></Cell>
        <Cell><Data>07_BIENES</Data></Cell>
        <Cell><Data>B02</Data></Cell>
        <Cell><Data>PRINCIPAL</Data></Cell>
        <Cell><Data>Spare Parts</Data></Cell>
        <Cell><Data>26/11/2013</Data></Cell>
        <Cell><Data>Material Group</Data></Cell>
        <Cell><Data>MAN00003324</Data></Cell>
        <Cell><Data>HJHJHJH</Data></Cell>
        <Cell><Data>ABRASIVE BEAD; GLASS, 120</Data></Cell>
        <Cell><Data>ABRASIVE BEAD~MATERIAL: GLASS~GRIT: 120</Data></Cell>
        <Cell><Data>GRANO ABRASIVO; VIDRIO, 120</Data></Cell>
        <Cell><Data>GRANO ABRASIVO~MATERIAL: VIDRIO~GRANO: 120</Data></Cell>
        <Cell><Data>can</Data></Cell>
        <Cell><Data>Utiles y Materiales El├ęctricos</Data></Cell>
        <Cell><Data>COMPRAR</Data></Cell>
        <Cell><Data>CONPLAN</Data></Cell>
        <Cell><Data>JUAN</Data></Cell>
        <Cell><Data>1</Data></Cell>
        <Cell><Data>2</Data></Cell>
        <Cell><Data>07_BIENES</Data></Cell>
       </Row>
     </Table>
     </Worksheet> '

            )                
            COLUMNS
              col1 varchar2(20) path '/Row/Cell[1]',
              col2 varchar2(20) path '/Row/Cell[2]',          
              col3 varchar2(20) path '/Row/Cell[3]',          
              col4 varchar2(20) path '/Row/Cell[4]',          
              col5 varchar2(20) path '/Row/Cell[5]',
              col6 varchar2(20) path '/Row/Cell[6]',
              col7 varchar2(20) path '/Row/Cell[7]',          
              col8 varchar2(20) path '/Row/Cell[8]',          
              col9 varchar2(20) path '/Row/Cell[9]',          
              col10 varchar2(20) path '/Row/Cell[10]',          
              col11 varchar2(20) path '/Row/Cell[11]',
              col12 varchar2(20) path '/Row/Cell[12]',          
              col13 varchar2(20) path '/Row/Cell[13]',          
              col14 varchar2(20) path '/Row/Cell[14]',          
              col15 varchar2(20) path '/Row/Cell[15]',
              col16 varchar2(20) path '/Row/Cell[16]',
              col17 varchar2(20) path '/Row/Cell[17]',          
              col18 varchar2(20) path '/Row/Cell[18]',          
              col19 varchar2(20) path '/Row/Cell[19]',          
              col20 varchar2(20) path '/Row/Cell[20]',          
              col21 varchar2(20) path '/Row/Cell[21]',
              col22 varchar2(20) path '/Row/Cell[22]',          
              col23 varchar2(20) path '/Row/Cell[23]',          
              col24 varchar2(20) path '/Row/Cell[24]',          
              col25 varchar2(20) path '/Row/Cell[25]'                                        
    );

    SQL>
     
    COL1                 COL2                 COL3                 COL4                 COL5                 COL6                 COL7                 COL8                 COL9                 COL10                COL11                COL12                COL13                COL14                COL15                COL16                COL17                COL18                COL19                COL20                COL21                COL22                COL23                COL24                COL25
    -------------------- -------------------- -------------------- -------------------- -------------------- -------------------- -------------------- -------------------- -------------------- -------------------- -------------------- -------------------- -------------------- -------------------- -------------------- -------------------- -------------------- -------------------- -------------------- -------------------- -------------------- -------------------- -------------------- -------------------- --------------------
    ACCION               Numero Maestro de sF Articulo             Version              Numero de peticion d Organizacion         Codigo de planta     Codigo de bodega     Tipo de material     Fecha de creacion    Grupo de Material    Fabricante (codigo)  Numero de parte      Descripcion corta (I Descripcion larga (I Descripcion corta (E Descripcion larga (E Medida Base          CATEGORIAS           HACER O COMPRAR      METODO PLANIFICACION PLANIFICADOR         PRECIO LISTA         TIPO                 TIPO DE ART. DE USUA
    Actualizar           9142088                                   1                    5                    07_BIENES            B01                  PRINCIPAL            Spare Parts          26/11/2013           Material GROUP       MAN00003324          HJHJHJH              ABRASIVE BEAD; GLASS ABRASIVE BEAD~MATERI GRANO ABRASIVO; VIDR GRANO ABRASIVO~MATER can                  Utiles y Materiales  COMPRAR              CONPLAN              JUAN                 1                    2                    07_BIENES
    Actualizar           9142088                                   1                    5                    07_BIENES            B02                  PRINCIPAL            Spare Parts          26/11/2013           Material GROUP       MAN00003324          HJHJHJH              ABRASIVE BEAD; GLASS ABRASIVE BEAD~MATERI GRANO ABRASIVO; VIDR GRANO ABRASIVO~MATER can                  Utiles y Materiales  COMPRAR              CONPLAN              JUAN                 1                    2                    07_BIENES
     

     
     
  3. anirbanmukherjee86

    anirbanmukherjee86 Active Member

    Messages:
    3
    Likes Received:
    0
    Trophy Points:
    55
    Hey Thanks krasnoslobodtsev. It workded beautifully.