How to get the value of the node xml strings

Hello world

I have the table with a varchar2 column that contains the XML nodes like this
create table test (REC_ID Number(8), xml_value varchar2(4000));
insert into test values (1000, '<id=''10'' data=''some data'' ref=''qq1''/> <id=''12'' data=''some other data'' ref=''qw2'' />');
insert into test values (1111, '<id=''99'' data=''some X data'' ref=''rty''/> <id=''88'' data=''final data'' />  <id=''77'' data=''final data2'' />');
for a line, there are several basic xml nodes. I want to get a result like this:
Rec_ID  xml_value_ID  xml_value_DATA
1000     10               some data
1000     12               some other data
1111     99               some X data
1111     88               final data
1111     77               final data2
What would be the best way of performance to achieve that?

Thank you very much

I just thought that this could be done by tech oracle xml.

It would be possible if it was XML data, but it is not.

A valid XML element have a tag name, for example:


That being said, we can cheat and generate a valid XML fragment out of your data by inserting the name of tag in front of 'id ':

SQL> select t.rec_id
  2       , x.xml_value_id
  3       , x.xml_value_data
  4  from test t
  5     , xmltable(
  6         '/item'
  7         passing xmlparse(content replace(t.xml_value, '

Second option, the analysis with regexp:

SQL> select rec_id
  2       , regexp_substr(x.column_value, 'id=''([^'']+)''', 1, 1, null, 1) as value_id
  3       , regexp_substr(x.column_value, 'data=''([^'']+)''', 1, 1, null, 1) as value_data
  4  from test t,
  5       table(
  6         cast(
  7           multiset(
  8             select regexp_substr(t.xml_value, '<[^>]+>', 1, level)
  9             from dual
 10             connect by level <= regexp_count(t.xml_value, '<[^>]+>')
 11           )
 12           as sys.odcivarchar2list
 13         )
 14       ) x
 15  ;

   REC_ID VALUE_ID           VALUE_DATA
--------- ------------------ -----------------------
     1000 10                 some data
     1000 12                 some other data
     1111 99                 some X data
     1111 88                 final data
     1111 77                 final data2
 

(needs 11 Oracle for the function REGEXP_COUNT)

Tags: Oracle Development

Similar Questions

  • How to get the part of string before and after a character

    Hi all

    How to get the string before and after the comma character)

    Ex: The string contains the value John Kennedy

    I need the output as first stirng - John

    Second stirng - Kennedy

    Create table names (fullname varchar2 (20));

    insert into values of names ("John, Kennedy");

    insert into values of names ("papa ibra, Shan");

    insert into values of names ('Don Bosco'),

    Select * from names;

    Expected results

    FullName firstname lastname

    John, Kennedy John Kennedy

    Nicolas, Nicolas Shan Shan

    Don Bosco Don Bosco

    Please let me know how to proceed

    Thank you

    Hello

    This proves what I said before, on 0 and several commas commas.

    If we add these 3 rows to the sample data you posted:

    insert into names (fullname) values ("tou").

    insert into names (fullname) values (' David, Lloyd, George ");

    insert into names (fullname) values ('J, R, R, Tolkien");

    then the query I posted earlier produced these results:

    FULLNAME FIRSTNAME LASTNAME

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

    John, Kennedy John Kennedy

    Nicolas, Nicolas Shan Shan

    Don Bosco Don Bosco

    TOU tou

    David Lloyd, George David Lloyd, George

    J, R, R, Tolkien J R, R, Tolkien

    If you prefer to get these results:

    FULLNAME FIRSTNAME LASTNAME

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

    John, Kennedy John Kennedy

    Nicolas, Nicolas Shan Shan

    Don Bosco Don Bosco

    TOU tou

    David Lloyd, George David, Lloyd George

    J, R, R, J, R, R Tolkien Tolkien

    then you just change line 1:

    WITH got_commapos AS

    (

    SELECT FullName

    , INSTR (fullname, ','-1) AS commapos-* CHANGED *.

    Names

    )

    SELECT FullName

    , SUBSTR (fullname, commapos 1, -1) AS a first name

    SUBSTR (fullname, commapos + 1) in the FORM name

    OF got_commapos

    ;

  • How to get the nodes size in the presenter content model

    Hi all

    I created a content model of presenter to display a list of content carousel with x of y (current number of total size).

    also I do not use af:carousel component used instead af:iterator.

    is it possible I can get number total i.e. nodes size outside a java bean.

    something like #{nodes.size} or nodes.length.

    Please suggest something which can fly running (i.e. performing edition of the model should be enough)

    Thank you

    -Yves

    Hi Yves,

    You should be able to use #{nodes.rowCount} to EL.

  • How to get the node root for all nodes using oracle SQL?

    Suppose I have an employee table, which has the following features:

    ID name MgrID
    ----------------------------------------
    1 Tom
    Jason 2 1
    3 Kelly 2
    4 Chris 2
    Russ 5 3
    --------------------------------------

    I want to get the following result.

    ID name RootMgrID
    ------------------------------------------------
    1 Tom
    Jason 2 1
    3 Kelly 1
    4 Chris 1
    Russ 5 1
    -----------------------------------------------

    How can I get it?

    Thank you very much

    Like this?

    SQL> with t as
      2  (select 1 id, 'Tom ' name, null mgr_id from dual
      3  union all
      4  select 2 id, 'Jason' name, 1 mgr_id from dual
      5  union all
      6  select 3 , 'Kelly ', 2 from dual
      7  union all
      8  select 4 , 'Chris ', 2 from dual
      9  union all
     10  select 5 , 'Russ ', 3 from dual
     11  )
     12  select id, name, connect_by_root(id)
     13  from t
     14  where name = 'Russ '
     15  connect by mgr_id = prior id
     16  start with id = 1
     17  /
    
            ID NAME   CONNECT_BY_ROOT(ID)
    ---------- ------ -------------------
             5 Russ                     1
    
    SQL>
    
  • How to get the node root for a child to help connect by front

    Hello

    I searched in many places to do that, but not able to get the exact o/p sp poster my question here.

    I have a table with columns parent_id, child_id and. This parent_child levels can be a lot, but my goal is to find the ultimate parent (do not know the right term)
    as if I have a = xyz child_node and its parent company = pqr and her parents = lmn, that might be the ultimate parent is not any other parent.

    So if I start with child_code = "xyz" then I should get the parent as "lmn" and not the immediate parent "pqr".

    Help, please.

    Thank you
    Aashish

    1. When you want to find all parents position = 100:

    SELECT position_id,parent_position_id
    FROM position
    where position_id = 100
    CONNECT BY prior position_id = parent_position_id
    

    2. When you want to find all childs position = 100:

    SELECT position_id,parent_position_id
    FROM position
    where position_id = 100
    CONNECT BY prior parent_position_id = position_id
    

    Kind regards
    Sayan M.

  • get the response XML string

    Hello friends, I get an XML response like below. Now, I want to get is the string ' hello world '. How can I retrieve the XML response? I have to change something in the side Server? Y at - it a tutorial for sending xml soap request?

    
    
    
    http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    
    
    
    http://www.XYZ.com/abc">
    
    Hello World from XYZ
    
    
    
    
    
    
    

    Are you absolutely sure that tempStream contains your XML file? It seems that XML is not reached the parser.

  • XML: How to get the value of the node when the node of pasing as a parameter name

    Hello

    I've got some xml:

    var xmlData:XML = 
    <1stNode>
        <buttonID>first child node value</buttonID>
        <imageID>second child node value</imageID>
        <labelID>third child node value</labelID>
    </1stNode>
    

    So, I want to read the value of specific node based on a value passed to a function. .

    var buttonID = new Button;
    
    var imageID = new Image;
    
    var labelID = new Label;
    
    
    getNodeValue(buttonID); //the value here is set dynamically
    
    private function getNodeValue (nodeName:String):void {
    
    trace (xmlData.nodeName)                      //doesn't work
    
    var str:String = "xmlData." + nodeName;
    var xml:XMLList = str as XMLList             //doesn't work
    
    }
    

    I don't know how to get the value when the name of the node is changed dynamically.

    use:

    getNodeValue(buttonID); //the value here is set dynamically
    
    private function getNodeValue (nodeName:String):void {
    trace (xmlData[nodeName])
    }
    
    
  • How to get the reference or the property of a member in OOP node?

    Hello world

    Is it possible to get the referral of a member in OOP?

    After you have created a class and an insert, a member of control in the cluster, I conclude that, when a right click on it, there is no element of "creat-> reference" or "create-> property node?

    So, how to get the reference or the property of a member in OOP node?

    Hello

    There are a few reasons that you can't do what you want to do:

    1 al ' LVOOP ordinary (as opposed to the DVRS in LabVIEW 2009, or some other framework / pattern design) are items of LabVIEW by value, as a cluster and therefore you can not create a reference to a class.

    2. a control of the object (this is what you get when you drop an object on a façade) is a 'black box' because you cannot look inside. This is to support the idea that the class data private. This means that you can't get a reference to all internal control when its on a façade

    3. check the references are valid only for the controls in the Panel before and therefore any class (or other piece of data of LabVIEW) on a wire / shift register / constant / anywhere other that of the façade, will have only the data portion of the available control.

    To access the items within a class, you create the accessor screws (you can create them easily by right-clicking a class (or the folder within the class) in the project tree and selecting New-> VI to access data members.) This VI would at least have a unbundle / bundle node (depending on whether its read/write) and could, if you have many more features such as range checking. You can use this VI whenever you want to read the Member your interested.

    I hope this helps.

    Shaun

  • How to get the value of viewrow by chain

    With the help of Jdev11.1.1.5.0 - adfbc - ireport3.0.0

    Here I will describe: what I've done.

    use jsff (dynamic region) while hitting the af:tree nodes it opens. Fine OK

    I had somevo manually wroten Query. and the query is fine no problem with it
     here i give sample not a original query
    select * from sometable where acctid = :pacctid
    I do drag and drop the pacctid correspondent run params vo as selectoncechoice


    public static vo
    Value of data - to pay account, advance

    Announcement name - ap, given


    in this jsff
    *page representation*
    
    account type :   account payable (ap) - select one choice type
                            advance           (ad) - select one choice type
    
    like this some select once choice and some inputs.
    
    Run report - command button
     .jsff code 
    <af:selectOneChoice value="#{bindings.ACCT_TYPE.inputValue}"
                              label="Account Type"
                              shortDesc="#{bindings.ACCT_TYPE.hints.tooltip}"
                              id="soc3" required="true" 
                              autoSubmit="true"
                              binding="#{backingBeanScope.SUP1040V.soc3}"
                              valuePassThru="true"
                              valueChangeListener="#{backingBeanScope.SUP1040V.ValueChangeListener1}">
                             
            <f:selectItems value="#{bindings.ACCT_TYPE.items}" id="si3"/>
          </af:selectOneChoice>
    
     <af:commandToolbarButton text="Export in pdf" id="ctb2">
              <af:fileDownloadActionListener method="#{backingBeanScope.SUP1040V.Report}"
                                             />
            </af:commandToolbarButton>
    . Java
         //while hitting the button following logs are appeared i show it as commented format.
    
        public void Report(FacesContext context, OutputStream out) throws IOException,Exception
            {
            
                FacesContext ctx = FacesContext.getCurrentInstance();
                HttpServletRequest request =
                    (HttpServletRequest)ctx.getExternalContext().getRequest();
                HttpServletResponse response =  
                    (HttpServletResponse)ctx.getExternalContext().getResponse();
                
            .....
                         
                BindingContainer bindings1 = BindingContext.getCurrent().getCurrentBindingsEntry();
                System.out.println("print binding" +bindings1 );
           
    //while using sop i get this in my log : :  print binding  ReportsPageFragments_SUP1040VPageDef_WEB_INF_TaskFlows_SUP1040_V_TF_xml_SUP1040_V_TF
    
           
                JUCtrlListBinding listBinding1 = (JUCtrlListBinding)bindings1.get("ACCT_TYPE");
                System.out.println("print list bindings" +listBinding1 );
           
    //while using sop i get this in my log : :  print list  bindings0
    
    
                Object selectedValue1 = listBinding1.getSelectedValue();
                System.out.println("print selected value" + selectedValue1);
    
    //while using sop i get this in my log : :  print selected  valueViewRow [oracle.jbo.Key[AP ]]    
                
                  
     request.setAttribute("ACCT_TYPE", //here i want the value  "AP" in  String  ); 
    
    if i use like this means
    request.setAttribute("ACCT_TYPE", soc1.getValue()  );  i get the index value.
    
    i need the dataname "ap" so i go above method which say wrotes ...
                 
              
                           ...                                    
                request.getRequestDispatcher(response.encodeURL("/sup1040servlet")).forward(request,response);
                
                System.out.println("hihihihih");
                response.flushBuffer();
                ctx.responseComplete();
           
            }
    
        public void ValueChangeListener1(ValueChangeEvent valueChangeEvent) {
            // Add event code here...
            String AcctType = valueChangeEvent.getNewValue().toString();
            System.out.println("AcctType" + AcctType);
            FacesContext contxt = FacesContext.getCurrentInstance();
            valueChangeEvent.getComponent().processUpdates(contxt); 
          
           BindingContainer bindings1 =
           BindingContext.getCurrent().getCurrentBindingsEntry();
           // Get the sepecific list binding
           JUCtrlListBinding listBinding1 =
           (JUCtrlListBinding)bindings1.get("ACCT_TYPE");
           // Get the value which is currently selected
           Object selectedValue1 = listBinding1.getSelectedValue();
           System.out.println(selectedValue1);
        }
    If I get ap means my report runs. or otherwise it will show an empty page.

    How to get the value of class viewrowimpl as string.

    Published by: ADF7 on March 24, 2012 07:27

    ADF7,
    I'm not sure that understand what you're up to.
    For as far as I understand you want to get the value of display rather than the index
    I use this code

        public void StatusChangedListener(ValueChangeEvent valueChangeEvent)
        {
            BindingContext lBindingContext = BindingContext.getCurrent();
            BindingContainer lBindingContainer = lBindingContext.getCurrentBindingsEntry();
            JUCtrlListBinding list = (JUCtrlListBinding) lBindingContainer.get("Status");
            int newindex = (Integer) valueChangeEvent.getNewValue();
            Object row = list.getDisplayData(); // Wichtig um die liste zu laden!!!!
            Row lFromList = (Row) list.getValueFromList(newindex);
            Object lAttribute = lFromList.getAttribute("Value");
            String newVal = (String) lAttribute;
        }
    

    to get the value of a component of selectOneChoice...

    Timo

  • How to get the value of a particular column column name?

    Hi all

    How to get the column name for a particular column value.
    example:

    create table test (ID number, col2, col3 varchar varchar);

    Insert into test values (1, 'true', 'false');
    Insert into test values (2, 'false', 'true');
    commit;

    I want to choose the name of the data column 'true' with id = 1;

    That is to say) while waiting for answer is "col2". pls help someone.

    This might help:

    DECLARE
       c1 SYS_REFCURSOR;
    BEGIN
       OPEN c1 FOR
       SELECT col2,
              col3
       FROM   test
       WHERE  id = 1;
       --
       FOR c IN (SELECT rownum rn,
                        t2.column_value.getrootelement() name,
                        EXTRACTVALUE(t2.column_value, 'node()') value
                   FROM TABLE(XMLSEQUENCE(c1)) t,
                        TABLE(XMLSEQUENCE(EXTRACT(column_value, '/ROW/node()'))) t2)
       LOOP
          IF c.value = 'true' THEN
             DBMS_OUTPUT.PUT_LINE(c.name);
          END IF;
       END LOOP;
    END;
    
  • How to get the length and sub lymph nodes.

    Hello

    find the script below.

    < List1 >

    < list >

    < List1 >

    < List1 >

    < List1 >

    < / list >

    < list >

    < List2 >

    < List2 >

    < List2 >

    < / list >

    --

    --

    -

    -

    -

    -< / list1 >

    Here the tag list will be growing based on the I / p. Now what I want is to know how to get the length of the tag < list >.

    To implement the above I used the code below

    var number = xfa.record.List1.List [0].nodes.length; (Does not work)

    But if var account = xfa.record.List1.nodes.length; (work)

    and also I want to delete a tag inside the < List > tag. How?

    Very Urgent.

    Thanks in advance.

    Yes, you need to use the name instead of the value to get the tag name...

    xfa.datsets.data.Root.nodes.item (0) .name

    Thank you

    Srini

  • How to get the peak value

    Can I know how to get the 2 peak values v1 and v2 and 2 duration times t1 t2.

    Since there is a small amplitude noise, difficult to use the Max simplely.

    May need to use a filter such as wavelets or TREE to Denoise it first. Can I know how to use, any Toolbox in labview. How do the curve smooth first.

    Thank you.

    I can't watch your vi now (I'm at work), but if your signals are long enough, you might consider a median filter.  You can set the number of points before and after use.  I found that it is useful for some smoothing problems (not all).

  • How to get the value of a variant as a string

    I have an existing codebase, which transmits the values of the user interface to business logic as variants. I was prompted to connect all values passed in this way in a text file. I'm trying to figure out how to get the data as a string to a Variant value without having to deal on the type for the data descriptor. The flag variant the fact, so I think I can, too.

    Anyone know how?

    Thank you, all! I decided to use the XML approach:

  • using PostDelayedCall how to get the value passed through void * callbackData?

    Can someone tell me how to get the data passed through void * callbackData?

    The following code, panel_ptr has the right address but still contains zero.

    void CVICALLBACK value_changed (void * callbackData)
    {
    int * panel_ptr;
     
    panel_ptr = callbackData;
    calculate_new_value (* panel_ptr);
    }

    int sign;

    Panel = 2;

    PostDelayedCall (value_changed & Panel, 0.2);

    The problem is using the callbackData parameter if it is a pointer, it must be a pointer to something which is still topical at the moment that the callback executes. That is to say, you cannot pass the pointer to a local variable in callbackData as when the callback executes the pointer is no longer valid. You can switch from its value, instead, in this way:

    ... SomeFunction)

    {

    int sign;

    ...

    Panel = 2;

    PostDelayedCall (value_changed, (void *) Panel, 0.2);

    ...

    }

    void CVICALLBACK value_changed (void * callbackData)
    {
    int panel_ptr;
     
    panel_ptr = (int) callbackData;

    calculate_new_value (panel_ptr);

    return;
    }

    There are many discussions on the forums on callbackData parameter that you might want to read.

  • How to get the parameter values of a step type custom when I create file and adding a type of step seq

    I use lv 8.5 and teststand 4.0.

    I did a step type custom and recorded at the MyTypes.ini in pallets of type.

    I specified a default module by opening the properties of the custom step of *.ini type window, then I put some values of the parameters.

    T1) when I open teststand and I add the custom step type manaully in seq file, the labview module parameter values are represented.

    But, if to use file (create and add support prototype stage), the labview module parameter values has the default value.

    Using joint file, how to get the setting custom step type values I put in *.ini?

    Q2) each type of step are automatically by name through the use of LoadTypePaletteFilesEx. When I open teststand and I add the custom step type manaully in seq file, the module is loaded automatically. Inside the attachment, I use a prototype of charge and a fixed path where the module labview is to load the labview module.

    Can I load module automatically without using a prototype of charge or how can I get a dynamic path of type step?

    I solved Q1 for myself by using the mapping tab of the parameter within the configuration to the default module window.

    Everyone knows Q2?

    Thank you.

Maybe you are looking for

  • Week old iPhone 7 displays "sim" invalid error

    Week old 7 128 GB iPhone displays "invalid sim" error intermittently. Nothing in particular seems to make. Just shows up randomly. If I turned off and restart it solves for a while. I'm getting a couple of times a day now. Anyone else having this pro

  • Error 56 localhost

    Hi all I'm pretty new in Labview. I am communicating 2 VI on the same computer by using the function of the STM. A VI collect data via DAQmx and send it to the wire with the help of STM function, while the other VI read data from STM and plot the dat

  • I heard that microsofts antivirus protection is good enough. where can I find more information

    original title: virus protection I heard that microsofts antivirus protection is good enough. where can I find more information

  • Firefox guard preventing audio and video to play

    Firefox keeps all videos and audio playback.  JavaScript turned on, have tried to download the old versions of firefox and adobe air.  Nothing is resolved the problem!

  • Reset windows password

    I would like to place a "Forgot password" option to the windows logon screen and point to a script that connects to the AD and reset the password, so that the user can reset the password itself with some security checks. I could build the script, but