How to write sql queries to parse the xml?

Hi, I'm new to this xml parsing. I need to extract the value of an xml file by using the sql query. Please find the sample xml file. Kindly help me.

<? XML version = "1.0" encoding = "UTF-8"? >

< MaterialUpdates >

< material >

< SalesOrg >

KAR12 < ID > < /ID >

< / SalesOrg >

< / materials >

< / MaterialUpdates >

I need extratct ID value: / MaterialUpdates/Materials/SalesOrg/ID

Hello

For more than one nodes, have to manage like this,

Q SELECT EXTRACTVALUE (VALUE (x), ' / SalesOrg/ID ')

OF xml_table a, TABLE (XMLSEQUENCE (EXCERPT (xmltype (column_name), "MaterialUpdates/materials/SalesOrg"))) x;

Take advantage of...

Tags: Database

Similar Questions

  • How to write a function to estimate the number of rows returned SQL?

    How to write a function to estimate the number of rows returned SQL through SQL Execution Plan?
    My idea is
    Call dbms_sql.parse to create the SQL PLAN, then ask the PLAN for the number of estimated return lines.
    But how to get SQL plan through "id cursor?
    Thank you.

    You can use EXECUTE IMMEDIATE to explain plan statement. About the STATEMENT_ID generation, it could be anything. Even a SYSTIMESTAMP cast as TANK would work.

  • Does anyone know of a VI or how to write one that will stop the computers time be disabled if an application is run.

    Does anyone know of a VI or how to write one that will stop the computers clock be turned off if an application is run. The time and date can be reset normally while an application is running by clicking on the time in the lower right of the screen of the computer. I have an application that runs over several days and it is essential that the time and date of the computer not be changed. Is there an easy way of this lockout the user? Note that I am what I consider a beginner advanced in LV

    Thank you

    Chuck

    This isn't something that you can from LabVIEW, because this is an operating system operation, and it will depend on the operating system you are using. Under Windows, you can use Group Policy to control this. Please Google on "prevent changing the date and time of windows."

    Also, please try to refrain from stuffing your message in its entirety in the block of material. Keep short, but descriptive enough topic so we can understand what you're asking basically. Thank you.

  • How to parse the XML from the server BB10 Cascades development

    Hi all

    I'm new to BB10 development.

    I made the connection with my server that sends data to the XML Format. How to analyze.  Can someone help me with this.

    Also how to store data analysed in the Global Variable or ArrayList.

    Concerning

    Stephenson

    I thought you wanted to do stunts (qml).
    I use Qt

    QByteArray data = currentReply->readAll();
    xml.addData(data); //xml is a QXmlStreamReader
    

    to parse the xml, it is pretty simple if you look at the API.

    Here is a snippet of my code:

    while (!xml.atEnd()) {
        xml.readNext();
        /** start of an element **/
        if (xml.isStartElement()) {
            currentTag = xml.name().toString();
            if (xml.name() == "version") {
    

    the feed reader goes hierarchically, so you can simply call routines to analyze the different parts of the xml if the name() corresponds to a certain value.

  • I'm new in indesign scripting, please tell me how to write a script to get the contents of an XML element and then sort all the content

    I'm new in indesign scripting, please tell me how to write a script to get the contents of an XML element and then sort all the content

    Hello

    Can the code below is useful for you, but I do not know how to sort.

    Change the tag based on your employment application.

  • having a problem with parsing the XML file

    Hi all
    I am trying to get data from XML file
    I want to only 4-5 values in this XML file
    Here is an example of XML file
    -< transaction >
    -< TransCtx >
    > < pAMETranType > IRCVACAPPROVAL < / pAMETranType >
    > < / TransCtx >
    > < / transaction >

    I want to add value and to store this value in table
    I'm here, I want to "IRCVACAPPROVAL".
    the tag
    < pAMETranType >

    for this purpose


    I created a procedure

    CREATE OR REPLACE PROCEDURE insert_xml_emps (p_directory in varchar2,
    > p_filename in varchar2)
    (> vtableName in varchar2) as
    > v_filelocator BFILE.
    > v_cloblocator CLOB.
    > l_ctx DBMS_XMLSTORE. CTXTYPE;
    > l_rows NUMBER;
    > v_amount_to_load NUMBER;
    > dest_offset NUMBER: = 1;
    > offset NUMBER: = 1;
    > lang_context NUMBER: = DBMS_LOB. DEFAULT_LANG_CTX;
    > WARNING NUMBER;
    > START
    > dbms_lob.createtemporary (v_cloblocator, true);
    > v_filelocator: = bfilename (p_directory, p_filename);
    > dbms_lob.open (v_filelocator, dbms_lob.file_readonly);
    > v_amount_to_load: = DBMS_LOB.getlength (v_filelocator);
    >-* this line is changed * -.
    > DBMS_LOB. LOADCLOBFROMFILE (v_cloblocator,
    > v_filelocator.
    > v_amount_to_load.
    > dest_offset.
    > offset.
    > 0,
    > lang_context.
    (> warning);
    >
    > l_ctx: = DBMS_XMLSTORE.newContext (vTableName);
    > DBMS_XMLSTORE.setRowTag (l_ctx, 'TRANSACTION');
    > DBMS_XMLSTORE.setRowTag (l_ctx, 'TRANSCTX');
    >-clear the update settings
    > DBMS_XMLStore.clearUpdateColumnList (l_ctx);
    >-set the columns to update a list of values
    > DBMS_XMLStore.setUpdateColumn (l_ctx, 'PAMETRANTYPE');
    >
    >-now insert the doc.
    > l_rows: = DBMS_XMLSTORE.insertxml (l_ctx, v_cloblocator);
    > DBMS_XMLSTORE.closeContext (l_ctx);
    > dbms_output.put_line(l_rows ||) "... inserted rows. ») ;
    > dbms_lob.close (v_filelocator);
    > DBMS_LOB. FREETEMPORARY (v_cloblocator);
    > END;

    I also have on the table who get this value

    whenever I call that created the procedure
    it sometime gives an error or sometime run correctly but store null in the table


    But when I change the XML file
    as
    When convert all lowercase letters in the capital then it works fine

    Is tehre to other ways to parse the XML file with no change in the XML file?

    Did you use the same test (with the exception of file name and directory) case?

    What I posted is a copy/paste direct SQL * Plus, and it works on version 11.2.0.1.

  • How can I parse the XML file using the Oracle's Sql query.

    Hi all
    I have an XML file that must analyze and display the result according to the following example
    Can you please recommend me an approach to get the result.

    For example, here is my XML:

    <? XML version = "1.0" encoding = "UTF-8"? >
    < xmlns:pi = "urn:com.workday / picof pi: Extract_Employees" >
    < IP: employee >
    < Additional_Information: pi > < pi: pi function: PriorValue = "" > Intern - masteri¿½s < / pi: function >
    < / pi: Additional_Information >
    < / pi: employee >
    < / pi: Extract_Employees >

    Databases:

    Oracle Database 10 g Enterprise Edition release 10.2.0.3.0 - production

    SQL > SELECT * FROM NLS_DATABASE_PARAMETERS;

    NLS_LANGUAGE AMERICAN
    NLS_TERRITORY AMERICA
    NLS_CURRENCY $
    NLS_ISO_CURRENCY AMERICA
    NLS_NUMERIC_CHARACTERS.,.
    WE8ISO8859P1 NLS_CHARACTERSET
    NLS_CALENDAR GREGORIAN
    NLS_DATE_FORMAT DD-MON-RR
    NLS_DATE_LANGUAGE AMERICAN
    NLS_SORT BINARY
    NLS_TIME_FORMAT HH.MI. SSXFF AM
    NLS_TIMESTAMP_FORMAT-DD-MON-RR HH.MI. SSXFF AM
    NLS_TIME_TZ_FORMAT HH.MI. SSXFF AM TZR
    NLS_TIMESTAMP_TZ_FORMAT DD-MON-RR HH.MI. SSXFF AM TZR
    NLS_DUAL_CURRENCY $
    BINARY NLS_COMP
    NLS_LENGTH_SEMANTICS BYTES
    NLS_NCHAR_CONV_EXCP FAKE
    NLS_NCHAR_CHARACTERSET AL16UTF16
    NLS_RDBMS_VERSION 10.2.0.3.0



    The Xml file above with UTF-8 character sets which is multi bytes.

    But in my character database is WE8ISO8859P1 for example ISO-8859-1 (single-byte character set)

    SQL > SELECT extractValue (Value (x) ', ' / pi:Employee/pi:Additional_Information/pi:Job_Title','xmlns:pi="urn:com.workday/picof ' ')
    TABLE (XMLSequence (extract (XMLType (bfilename('XMLDIR','XML_Issue_227176.xml'), nls_charset_id ('AL32UTF8')),'/ pi: Employee ',' xmlns:pi="urn:com.workday/picof"'))) x;)))


    which gives the following error:

    Error:
    ORA-31011: XML parsing failed
    ORA-19202: an error has occurred in the processing of XML
    LPX-00200: could not convert from UTF-8 encoding to ISO-8859-1
    Error on line 1
    ORA-06512: at "SYS." XMLTYPE", line 295
    ORA-06512: at line 1

    Also I tried with this
    SQL > SELECT convert (extractValue (Value (x), ' / pi:Employee/pi:Additional_Information/pi:Job_Title','xmlns:pi="urn:com.workday/picof"'),'WE8ISO8859P1 ', 'UTF8'))
    TABLE (XMLSequence (extract (XMLType (bfilename('XMLDIR','XML_Issue_227176.xml'), nls_charset_id ('AL32UTF8')),'/ pi: Employee ',' xmlns:pi="urn:com.workday/picof"'))) x;)))

    The same error is according to the above error message.

    Please help in this regard.

    Thank you and best regards,
    Sandrine

    You know the code of real character behind "" or you receive the file like that?

    For the record, "" is the wildcard of UTF-8 (0xEFBFBD), so that the original character of the means has already been replaced and that very probably the file was not coded properly in the first place.

    With respect to the resolution of the problem, try another method to read the file:

    SQL> select value from nls_database_parameters where parameter = 'NLS_CHARACTERSET';
    
    VALUE
    ----------------------------------------
    WE8ISO8859P15
    
    SQL> SELECT x.*
      2  FROM XMLTable(
      3         XMLNamespaces(default 'urn:com.workday/picof')
      4       , '/Extract_Employees/Employee'
      5         passing xmltype(
      6                   dbms_xslprocessor.read2clob(
      7                     'COP_DIR'
      8                   , 'XML_Issue_227176.xml'
      9                   , nls_charset_id('AL32UTF8')
     10                   )
     11                 )
     12         columns job_title varchar2(30) path 'Additional_Information/Job_Title'
     13       ) x
     14  ;
    
    JOB_TITLE
    ------------------------------
    Intern -  Master¿s
     
    
  • How to write Save function based on the drop-down list box selection data in app mxml flex4 with as3

    Hi all

    I'm working on the application web flex4 with as3.

    I have a doubt, I've created a mxml it has two text boxes, except the button and a combo box that is has two option as a percentage and the amount.

    my needs are I gave here.

    need 1: when I choose option amount that two text boxes does not have to be editable.when I select text tat box two percentage option will be editable.

    need 2: when I select the percentage in combox option and two text boxes are empty, and then click the button Save-> I want to display warning msg

    need 3: when I select the option amount combox and the two boxes are emptu click the button Save-> I don't want any warning messages.

    How to validate it and how to write backup for this function.

    This is my sample code:

    list box ID = baseAmtPer

    ID TextBox1 = maxCommAmt.text

    ID = baseAmtPer.text text box

    If (((baseAmtPer.editable!=true) & & (maxCommAmt.editable! = true)) & & ((baseAmtPer.text=="") & &(ma xCommAmt.text=="")) |) (baseAmtPer.text == "") | (maxCommAmt.Text=="")) -> This condition not allowing while I'm selecing amount in combo box. How the TWO TEXT BOX WILL BE EMPTY for this problem

    {

    Alert.Show ("enter in all areas", "Information");

    }

    on the other

    {

    some encodings

    }

    Hello

    Please go through the following Code:

    http://ns.Adobe.com/MXML/2009.

    xmlns:s = "library://ns.adobe.com/flex/spark".

    xmlns:MX = "library://ns.adobe.com/flex/mx" minWidth = "955" = "600" minHeight >

    Import mx.collections.ArrayCollection;

    Import mx.controls.Alert;

    Import spark.events.IndexChangeEvent;

    protected function button1_clickHandler(event:MouseEvent):void

    {

    If (comboBox.selectedItem == "Percentage" & textBox1.text == "" & textBox2.text == "") {}

    Alert.Show ("enter the values");

    }

    }

    protected function comboBox_changeHandler(event:IndexChangeEvent):void

    {

    {if(ComboBox.SelectedItem=="Amount")}

    textBox1.editable = false;

    textBox2.editable = false;

    }

    else {if(comboBox.selectedItem=="Percentage")

    textBox1.editable = true;

    textBox2.editable = true;

    }

    }

    ]]>

    Amount

    Percentage

    Thank you and best regards,

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

    Vibhuti Gosavi . [email protected] | www.infocepts.com

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

  • How to write a select statement inside the case operator

    Hi all

    I want to write a query that get the result of another table of case operator.

    for example

    Select a, b, c of the double
    where a = 1
    and b = case when b is null then 'select any value from the other table' any other purpose;


    Please help me to write this query.

    Thank you

    Select a, b, c of the double
    where a = 1
    and b = case when b is null then 'select any value from the other table' any other purpose;

    Guilty plea

    Select a, b, c from tableA a
    where a.a = 1
    and a.b = (select decode (a.b, null, (select 1 from tableB b where rownum = 1), a.b) double)

  • Unable to parse the XML because of malformed UTF-8

    When parsing a string xml (not a file!) I have a malfromed exception UTF-8. This is due to the fact that there are accents in (oau), but the chain says it utf-8 format. These umlauts or even some Chinese characters are allowed by the xml specification.

    You have an idea on how to make this work? the problem is that I can't just replace the characters with something else since I have to support any language.

    Sring xml ="" my name: oauRed535.

    DocumentBuilderFactory plant = DocumentBuilderFactory.newInstance ();

    DocumentBuilder builder = factory.newDocumentBuilder ();

    InputStream inputStream = new ByteArrayInputStream (xml.getBytes ());

    Document document = builder.parse (inputStream);

    Exception message when you call parse: Malformed UTF-8

    Any help welcome,

    Thank you

    Is the point of this item:

    my name: oau

    to test the transformation of accented characters?

    In any case, I'll try:

    xml.getBytes("UTF-8")

    to make sure that your string is encoded using UTF-8 and not ISO-8859-1 which is the default.

  • Need examples of code to parse the xml using kxml2

    Hello world

    I am a beginner for Blackberry, I want to get the data from the xml file. I look and see the section use of kxml2 is a better choice.

    But I can't find an example code for it on the Blackberry.  Can someone share me?

    I open kxml2.jar, I see xmlParser and kxmlParser, whoever I'm use()?

    Anbody can help me contact how to use kxml2 clearly?

    Thank you very much. Sorry for the bad English.

    --------

    Binh - VietNam

    Ah yes, sorry, I assumed automatically kxml to be used with ksoap2.

    kxml is a j2me parser commonly you can find sources in other forums, for example
    http://www.developer.Nokia.com/community/wiki/How_to_parse_an_XML_file_in_Java_ME_with_kXML
    http://j2mesamples.blogspot.com/2009/04/XML-parsing-in-J2ME.html

  • Parse the XML file and extract data

    I want to parse a XML file and get the data as columns.

    Input country.xml file:

    <?xml version="1.0" encoding="UTF-8"?>
    <MAS Action="Insert">
    <Country ObjectId="100000000000000009" VersionId="8"><Id>1</Id><NlTexts><Name Language="de">Land1</Name><Name Language="en">Country1</Name></NlTexts></Country>
    <Country ObjectId="100000000000000033" VersionId="2"><Id>2</Id><NlTexts><Name Language="de">Land2</Name><Name Language="en">Country1</Name></NlTexts></Country>
    </MAS>
    
    

    I would like to analyze the xmlfile to get the following result

    Required result:

    col1        col2           col3
    1            Land1        Country1
    2            Land2        Country2
    

    or alternatively

    col1  col2       
    1            Land1       
    1            Country1
    2            Land2       
    2            Country2
    

    I tried the extract function

    select extract((XMLTYPE(BFILENAME('XML_DAT_DIR', 'country.xml'),
               NLS_CHARSET_ID('AL32UTF8'))) , '/*/*/Id') as "xdata"
    from dual;
    
    xdata
    ------------------------
    <Id>1</Id><Id>2</Id>
    

    and XMLTABLE (but how can I add countries now)

    SELECT *
        FROM XMLTABLE('/*/*/Id'
               PASSING XMLTYPE(BFILENAME('XML_DAT_DIR', 'country.xml'),
               NLS_CHARSET_ID('AL32UTF8'))
           )
      ;
    COLUMN_VALUE
    ------------------------
    <Id>1</Id>
    <Id>2</Id>
    

    DB version 11.2.0.3 on Windows 64-bit

    Thank you

    Tim

    Here are a few examples.

    For your output required:

    SELECT *.

    FROM XMLTable)

    "/ MAS/country".

    from XMLType (bfilename ('TEST_DIR', 'country.xml'), nls_charset_id ('AL32UTF8'))

    number of columns col1 way "Id".

    , col2 varchar2 (30) path "NlTexts/name [1].

    , col3 varchar2 (30) path "NlTexts/name [2]»

    )

    ;

    or, if the Language attribute is significant:

    SELECT *.

    FROM XMLTable)

    "/ MAS/country".

    from XMLType (bfilename ('TEST_DIR', 'country.xml'), nls_charset_id ('AL32UTF8'))

    number of columns col1 way "Id".

    col2 varchar2 (30) path "NlTexts/Name[@Language="de"]"

    col3 varchar2 (30) path "NlTexts/Name[@Language="en"]"

    )

    ;

    For your alternate exit:

    SELECT x1.col1

    x2.col2

    -, x2.col3

    FROM XMLTable)

    "/ MAS/country".

    from XMLType (bfilename ('TEST_DIR', 'country.xml'), nls_charset_id ('AL32UTF8'))

    number of columns col1 way "Id".

    , path of xmltype names ' NlTexts/name '.

    ) x 1

    XMLTable)

    "/ Name".

    in passing x1.names

    path of column col2 varchar2 (30) '.'

    -, col3 to ordinalite

    ) x 2

    ;

    (uncomment col3 to see what he does)

    or in a shorter way:

    SELECT *.

    FROM XMLTable)

    ' for $i/MAS/country

    , $j in $ NlTexts/i/name

    Returns the r element {$i / Id, $j}'

    from XMLType (bfilename ('TEST_DIR', 'country.xml'), nls_charset_id ('AL32UTF8'))

    number of columns col1 way "Id".

    , col2 varchar2 (30) path 'name '.

    ) ;

  • How to build a unique identifier of the XML?

    I have a fairly simple XML structure as in the example below. I'm storing XML data in XMLTYPE table without changes and the construction of a set of views for XML SQL data in addition to this access. It is very basic and indicated for example in Breaking Up several levels of XML data: http://download.oracle.com/docs/cd/E11882_01/appdev.112/e23094/xdb03usg.htm#autoId58

    The problem is that the XML data is missing an identifier for the order items that could be used as a primary key when document splitting audit (items) relational perspective.

    Currently I intend to construct such an identifier by combining a high level (which is unique) identifier to the ordinal position of the elements of order. Unfortunately I do not know how to do (see below). My second question is if it's a good idea at all or if something's substitute.

    I'm under Oracle 11.2.0.1.0.
    create or replace view orders_view as
    with xmldata as (select xmltype('<batch id="batch1">
    <order>
      <orderer>Joe</orderer>
      <items>
        <item>Standard widget</item>
      </items>
    </order>
    <order>
      <orderer>Jack</orderer>
      <items>
        <item>Regular widget</item>
        <item>Cooling widget</item>
      </items>
    </order>
    <order>
      <orderer>John</orderer>
      <items>
        <item>Super+ widget</item>
        <item>Super+ widget</item>
      </items>
    </order>
    </batch>') object_value from dual)
    select x1.batchid,
           (select x1.batchid || '-' || x2.orderid from dual) as orderid,
           x2.orderer_name,
           x2.nbr_of_items
    from xmldata,
    xmltable('$doc/batch' passing xmldata.object_value as "doc"
             columns
             batchid varchar2(10) path '@id',
             orderlist xmltype path 'order') x1,
    xmltable('/order' passing x1.orderlist
             columns
             orderid varchar2(20) path '"?"', /* What to put here to get expected results ? */
             orderer_name varchar2(10) path 'orderer',
             nbr_of_items number path 'count(items/item)') x2;
    
    column batchid format a10
    column orderid format a10
    column orderer_name format a10
    
    select * from orders_view;
    Expected results:
    BATCHID    ORDERID    ORDERER_NA NBR_OF_ITEMS
    ---------- ---------- ---------- ------------
    batch1        batch1-1   Joe                   1
    batch1        batch1-2   Jack                  2
    batch1        batch1-3   John                  2
    Where ORDERID is built like BATCHID + '-' + the position of the < order > element in the batch.

    Hello

    The clause for ORDINALITE does exactly what you want:
    http://download.Oracle.com/docs/CD/E11882_01/server.112/e17118/functions253.htm#SQLRF06232

    select x1.batchid,
           x1.batchid || '-' || x2.orderid as orderid,
           x2.orderer_name,
           x2.nbr_of_items
    from xmldata,
    xmltable('$doc/batch' passing xmldata.object_value as "doc"
             columns
             batchid varchar2(10) path '@id',
             orderlist xmltype path 'order') x1,
    xmltable('/order' passing x1.orderlist
             columns
             orderid for ordinality,
             orderer_name varchar2(10) path 'orderer',
             nbr_of_items number path 'count(items/item)') x2
    ;
    
  • Inability to parse the XML file

    Podcasts connect tells me that it cannot parse the following URL.  You can determine why?  The URL http://www.nudge.online/Protest/Podcasts/hungerstriker.xml

    I followed, as far as possible, the advice provided by PodcastConnect

    Line 18 of your food

    < height > 144 < / height >

    The misspelling has given rise to the 'height' never closed and thus invalidate the rest of the food.

  • Help in parsing the XML result with ksoap2

    Hi, I have another problem. I used KSOAP2 to call a web service net but when I catch him to display the result with a selectionneret, it shows the following screen:

    reading on the web, I didn't find a good way to analyze the result. Could you help me with this? Thanks in advance

    Thanks, the problem here is that we use the same webservice for more devices and a web page in .NET) that's why we use this webservice. Anyway thanks for the help. I read a lot of posts and the only way is perhaps to save the XML document in the SD card

Maybe you are looking for

  • Container plugin crashes when the flash is in use.

    Whenever Adobe flash player is enabled on a Web page, container plugin makes firefox crash less than a minute, or every time that I exit tab, whichever is faster. I installed adobe shockwave and try to refresh firefox to solve this problem but it per

  • I can't install Firefox browser

    My phone is Nokia E 71Can I install Firefox browser... ?

  • Trying to enter the product key

    I entered the product key correctly but when I hit the enter button its not available so I can't do anything. What can I do? It's not even say whether its wrong or not the option to continue or enter is not available when I get in there.

  • Whenever I try to open a file that I have to choose what program I want to use to open it with

    origintal title: open with Whenever I try to open a file that I have to choose what program I want to use to open it with, is there a way to stop this?

  • Help for Audio

    Dear Sir/Madam, I m using Compaq Presario C700 Notebook PC. There is no Audio after installing Windows XP SP2. I guess that's an Audio driver problem. I couldn't get the driver from anywhere. If any other problem. Please tell me. Please send me a lin