Loop over a list of string separated by ;

Hello,
i have a list of string in a varchar2 separated by ;
i wanna make a loop over this list and extract all string inside
any one has an idea ?
Thanks
Regards
Sallemel

user10393090 wrote:
Hello,
i tried it, i got this error :
PL/SQL: ORA-00904: "REGEXP_REPLACE": invalid identifierWell we have to assume you've got 10g or 11g unless you specify otherwise as lower versions are unsupported.
SQL> select substr( the_string
  2                , decode( level, 1, 1, instr(the_string,',',1,level-1)+1)
  3                , decode( instr(the_string,',',1,level), 0, length(the_string), instr(the_string,',',1,level) - decode( level, 1, 0, instr(the_string,',',1,level-1))-1)
  4                ) the_value
  5                from ( select '10,12,20,30,30,3,12,12,56' the_string
  6                       from dual
  7                     )
  8                connect by level < length(replace(translate(the_string,'01234567890','00000000000'),'0')) + 2;
THE_VALUE
10
12
20
30
30
3
12
12
56
9 rows selected.
SQL>

Similar Messages

  • Loop over data

    I have returned a dataset and one of the fields from the
    dataset is a comma delimited list, is there a way to loop over this
    list and display the values.

    Hi Martin,
    you assign the VARC incorrectly.
    L_ACC = VARC(VACVTE01).
    should be
    L_OBSERV = VARC(VACVTE01).
    Regards,
    Marc
    SAP NetWeaver RIG

  • Efficient looping over strings

    ABAPers,
    I need to loop over all the characters in a string. Here is the pseudo code:
    data: myData TYPE string.
    data: n TYPE i.
    data: ch TYPE char1.
    n = STRLEN( myData).
    DO n TIMES.
      ch = myData(sy-index).
    ENDDO.
    While this code would work, the problem is that I am actually iterating over myData two times. STRLEN itself is internally iterating over myData to compute the length.
    Is there a more efficient looping mechanism without going through STRLEN?
    Thank you in advance for your help.
    Pradeep

    Hi,
    You can try this when it comes to converting things
        WHILE myData IS NOT INITIAL.
    do something
        ENDIF.
        myData = myData+1(*).
    Eddy
    PS.
    Put yourself on the SDN world map (http://sdn.idizaai.be/sdn_world/sdn_world.html) and earn 25 points.
    Spread the wor(l)d!

  • How use c:forEach to loop over a String[][]

    Hello,
    Is there anyone that can tell me how to use the c:forEach tag to loop over a double String[][]? I can find examples for resultsets etc....but whatever I try with my String[][], I never can get the results on the screen.
    Thanx,
    debeumers

    You need to set up a double c:forEach loop.
    ie
    <%
    // initialisation of string[][]
    String[][] sValues = new String[5][5];
    for (int i=0; i<sValues.length; i++){
      for (int j=0; j<sValues.length; j++){
         sValues[i][j] = "" + (i + j);
    pageContext.setAttribute("arrayValues", sValues);
    %>
    // And now to test print out the values
    <c:forEach var="row" items="${arrayValues}">
    <c:forEach var="col" items="${row}">
    <c:out value="${col}"/>
    </c:forEach>
    <br>
    </c:forEach>
    Hope this helps
    Cheers, evnafets

  • Error when looping over list

    Looping over a series of lists created from form fields
    generates an error when one of the fields on the form has been left
    blank. The form is a list of event dates, start times and end
    times. One event can have a number of times.
    When the end time is uncertain, we want to leave it blank.
    However, doing so shortens the list created from #form.endtime# so
    that the lists don't match and there's an error message:
    "Invalid list index 2.
    In function ListGetAt(list, index [, delimiters]), the value
    of index, 2, is not a valid as the first argument (this list has 1
    elements). Valid indexes are in the range 1 through the number of
    elements in the list."
    How do you get around this problem? Tx.

    yoman,
    No need for separate forms. Use a counter to number each
    group of field names
    <input name="EventDateID1" ...>
    <input name="EventDate1" ...>
    <input name="EventDateID2" ...>
    <input name="EventDate2" ...>
    Then loop through the form fields on your action page
    <cfloop from="1" to="#form.maxCounter#"
    index="counter">
    <cfset EventDateID = form["EventDateID#counter#">
    <cfset EventDate = form["EventDate#counter#">
    ... rest of fields
    <cfquery name="UpdateFeatures" datasource="#dsn#">
    UPDATE EventDates
    SET EventDate = '#EventDate#', ....
    WHERE EventDateID = #EventDateID#
    </cfquery>
    </cfloop>
    You should validate the values and/or use cfqueryparam

  • Text is not being displayed in sync on a label when looping through a list -- how to fix?

    I have a list of states (50 states).  I loop through this list (in a winform app -- VS2012) and want to display the current state ID that is being processed in the loop in the text property of a label.  I precede the label.Text = StateID line with
    Application.DoEvents() but I am also (in Debug mode) writing the same text to the console.  The console displays correctly, but there appears to be a lag in the label.Text property
    List<string> StateList = new List<string> { "al", "ak", "az","ar","ca","co","ct","de","fl","ga",...};
    foreach (string stateID in StateList)
        Application.DoEvents();
        lblStateID.Text = "State is " + stateID;  //--there is a lag here
    I vaguely recollect something about a NotifyPropertyChanged event.  I know this is common in WPF, but is there something similar in winform?  Or is there a way to make the desired text to be displayed in the label.Text property in synchronization
    with the loop?
    Rich P

    Thank you.  This is way simpler than implementing the INotifyPropertyChanged Interface.  Although, here is an article on the INotifyPropertyChanged Interface and event
    http://msdn.microsoft.com/en-us/library/system.componentmodel.inotifypropertychanged(v=vs.110).aspx
    Rich P

  • Part of a string contained in one element list's strings

    Hi evebody,
    I have process that use this sql request :
    SELECT $code
    FROM DUAL
    WHERE $code IN ('BMW','MERCEDES','TOYOTA','PEUGEOT');
    Actually, the code is a string which value is car brand. for example 'BMW'.
    I want to change my process and have the possibility to put in $code multiples car brand separated by '||' . For example, 'BMW||RENAULT'.
    In this way, howa could I change my sql request?
    ie I want to check if a part of string exists in a element list's string.
    PLEASE HELP ME
    THANKS

    One way is to use regular expressions:
    SQL> variable code varchar2(100);
    SQL> exec :code := 'TOYOTA';
    PL/SQL procedure successfully completed.
    SQL> SELECT  :code
      2    FROM  DUAL
      3    WHERE REGEXP_LIKE('||' || :code || '||','\|\|BMW\|\||\|\|MERCEDES\|\||\|\|TOYOTA\|\||\|\|PEUGEOT\|\|')
      4  /
    :CODE
    TOYOTA
    SQL> exec :code := 'BMW||RENAULT';
    PL/SQL procedure successfully completed.
    SQL> SELECT  :code
      2    FROM  DUAL
      3    WHERE REGEXP_LIKE('||' || :code || '||','\|\|BMW\|\||\|\|MERCEDES\|\||\|\|TOYOTA\|\||\|\|PEUGEOT\|\|')
      4  /
    :CODE
    BMW||RENAULT
    SQL> SY.

  • Problem with Message-Mapping: Loop over Elements possible?

    Hi all,
    I want do create a Message-Mapping for an IDoc-to-File Scenario. In the Source Structure there are some Elements which can appear more than once (1..unbounded). I need a mechanism which loops over these elements and search for specified values. From the Element which contains an element with this specified value the mapping should write a value in the target structure.
    Here a simple example (source structure) for better understanding:
    <root>
       <invoice>
          <number> 10 </number>
          <sum> 200.00 </sum>
       </invoice>
       <invoice>
          <number> 20 </number>
          <sum> 150.00 </sum>
       </invoice>
       <invoice>
          <number> 30 </number>
          <sum> 120.00 </sum>
       </invoice>
    </root>
    Now the duty of the Mapping should be to search in the elements <invoice> for the number 30. And then the sum of the invoice with the number 30 should be written in a field of the target structure.
    I tried it out with a constant togehter with an equalsS-function and an ifWithoutElse-function, but it is working only then, if the invoice with the number 30 has the first position in the root context.
    Can anybody help me? Thanks
    With kind regards
    Christopher

    Hi,
    Write a UDF to sum the required values and map to target node.
    See while writing the UDF select the type as queue.
    number -- removecontext-UDF targetnode
    sum----removecontext--/
    number abd sum or the two inputs
    in UDF
    int nsum = 0;
    for(int i;i < number.length;i++){
      if number(i).equals("30") then
         nsum = nsum + valueOf(sum(i));
    result.addValue(nsum); // convert the nsum into string
    Regsrds
    Chilla

  • Looping over QoQ Where Clause

    I have two queries. One is a main query that we pull from a form submission. The second is a small query resultset that lists different subgroups in my company and what main group they belong to. I pull several QoQ from the main query. In the main query results, there is a column that holds the subgroup information. I am trying to do a Q0Q where I group the data from the main query into the main groups for analysis. Here is an example...
    Main Query
    record 1 - subgroup 1
    record 2 - subgroup 2
    record 3 - subgroup 3
    Second Query
    Subgroup 1 - Main Group 1
    Subgroup 2 - Main Group 2
    Subgroup 3 - Main Group 1
    So I am trying to loop over a QoQ on the main query where the result set would contain the information only from Main Group 1. So record 2 would be eliminated. I have tried using an IN clause with a cfloop, but I run into syntax trouble with the comma. I also tried looping over the QoQ as a whole and the resulting dump is only the last record.
    If there is anything else you need, let me know.
    Any thoughts?
    Clay
    P.S. Here is a code sampling...
        <cfquery name="rsGroup" datasource="nps">
        SELECT *
        FROM "GROUP"
        WHERE GROUP.PrimaryGroup = '#form.primarygroup#'
        </cfquery>
        rsGroup - <cfdump var="#rsGroup#">
        <cfloop query="rsGroup" startrow="1" endrow="#rsGroup.RecordCount#">
            <cfquery name="rsGroupQoQ" dbtype="query">
            SELECT *
            FROM rsNPS
            WHERE rsNPS.grp = '#rsGroup.group#'
            </cfquery>
        </cfloop>
        rsGroupQoQ - <cfdump var="#rsGroupQoQ#"><cfabort>

    ok...I figured it out. I thought I would post my solution in case anyone else runs into this. Also, if anyone out there has a better way, let me know.
    <!---Dummy array to house 'blank' value for adding of column to main query--->
    <cfset GroupArray = ArrayNew(1)>
    <!---Variable that adds mainGroup column to main query with blank data from dummy array--->
    <cfset addMainGroup = QueryAddColumn(rsNPS,'mainGroup',GroupArray)>
    <!---Loop that sets value on added mainGroup column based off of main query grp column value--->
    <cfloop query="rsNPS" startrow="1" endrow="#rsNPS.RecordCount#">
        <cfif rsNPS.GRP EQ "xxxxx"><cfset rsNPS.mainGroup = "yyyyy"></cfif>
        <cfif rsNPS.GRP EQ "xxxxxxxxxx"><cfset rsNPS.mainGroup = "yyyyyyyyyy"></cfif>
        <cfif ...etc. ...
    </cfloop>

  • Looping over cfdirectory

    Hello. I am having an issue with looping over cfdirectory.
    What I am trying to do here is grab the size of the files
    associated with the db. So where #current.Dir.Name# = #DB Column#
    update size etc.... What's happening is it is displaying the same
    id about 90 something times...Nice I know. Can anyone help?
    <cfloop query="qLoadFile">
    <cfoutput>
    <cfdirectory
    directory="/test1/test2/test3/0/#qLoadFile.owner_id#" action="list"
    name="currentDir">
    #qLoadFile.owner_id# <!--- This does display my ids
    correctly if I end the loop here but does not display anything in
    my table if I end the loop here and reopen it--->
    </cfoutput>
    <table border="1" bordercolor="#000000" >
    <tr>
    <td>File Name</td>
    <td>File Size</td>
    <td>Directory Location</td>
    <td>File Type</td>
    </tr>
    <cfloop query="currentDir">
    <tr>
    <cfoutput>
    <form name="updateSize" action="
    http://myURL.com/test2.cfm"
    method="post">
    <td><input type="text" name="name"
    value="#currentDir.Name#" /></td>
    <td><input type="text" name="size"
    value="#currentDir.Size#" /></td>
    <td>#right(currentDir.DIRECTORY, 2)#</td>
    <td>#currentDir.Type#</td>
    </cfoutput>
    </tr>
    </cfloop>
    </cfloop>
    </table> <br />
    <input type="text" name="number_of_directories"
    value="<cfoutput>#valuelist(qLoadFile.owner_id)#</cfoutput>">
    <input type="submit" name="submit" value="submit"/>
    </form>

    I just put your query into a random page of mine, changed the
    query to reflect a local database and got this output (all
    formatted correctly though!)
    Since I dont have the directory setup that you have the
    directory structures are empty, however it seems to be looping
    through fine
    59 File Name File Size Directory Location File Type
    60 File Name File Size Directory Location File Type
    61 File Name File Size Directory Location File Type
    62 File Name File Size Directory Location File Type
    63 File Name File Size Directory Location File Type
    64 File Name File Size Directory Location File Type
    65 File Name File Size Directory Location File Type
    Is this what you are looking for?

  • Loop over form values & insert into db

    Form
    prod_id     prod_name       prod_price    prod_status
    001         product 001     1.00          1            
    002         product 002     2.00          1      
    003         product 003     3.00          0      
    004         product 004     4.00          0      
    Form Dump
    prod_name      product 001,product 002,product 003,product 004
    FIELDNAMES     prod_id, prod_name, prod_price, prod_status
    prod_price     1.00,2.00,3.00,4.00
    prod_status    1,1,0,0
    prod_id        001,002,003
    I want to update a few fields, prod_price and prod_status. I submit these values to my update page but I'm not sure how to loop over these values and update by the prod_id. In my update page I'm using cfdump and I see the structure of the form, the fieldnames as well as the prod_id, prod_name, etc and their values.
    My question is how do I loop over these form values so I'll be able to update by each prod_id? I've played around with looping over the form collection values but no luck.

    When I do stuff like this, I append the "id" value to the end of each form field.  That enables me to ensure the other fields match up.
    When processing the form, I generally do something like this:
    <cfloop list="#form.fieldnames# index="ThisField">
    <cfif left(ThisField, 9) is "prod_name">
    <cfscript>
    ThisID = removechars(thisfield, 9);
    ThisName = form["prod_name" & ThisID];
    same for other fields
    Then do something with those variables.

  • Looping over a structure of arrays

    Hi Guys, I am trying to loop over a structure of simple
    arrays. The structure's second column contains a 1 dimentional
    array.
    I can't seem to get the proper syntax for my loop.

    I want to be able to dynamically loop over my query and
    decrypt it as I pass it into my structure. I have figured the code
    out to loop over the query and pass it to the structure. My problem
    now is whn I go to decrypt it I get this Error.
    There has been an error while trying to encrypt or decrypt
    your input string: Input length (with padding) not multiple of 16
    bytes.
    How can I fix this?
    Here is my code could it be because my varchar columns were
    not long enough. Here is my code.

  • Splitting string separated by commas into words and assigning numerical values

    Project details :
    I have a project where a description field is being looked at and based on the values (multiple words) I have to do a vlookup from another spreadsheet to get the dates from the appropriate date fields.
    I have created a user defined function to extract keywords from a list from a table. It extracts words from the string separated by comma delimiter.
        I am thinking of assigning values something like this: cooler = 1, compressor = 2, frame = 2, change of order = b etc.
        So if there is a “cooler, compressor, frame, change of order” in the cell, then it should read as: b12 (unique values). Based on the values, I can do a vlookup on the dates. I tried sumproduct in conjuction with search function but did not
    work. Tried split function but did not quite work.
    Any help regarding this is greatly appreciated. Thank you, regards
    keywords
    engine, compressor, frame, cooler     =Keywords(Wordlist,A2) is the function I am calling
    frame, cooler
    engine, cooler, change order
    cooler

    Hi,
    You're asking this question in the wrong forum, this is a PowerShell forum.
    The Excel VBA forum is this way:
    http://social.msdn.microsoft.com/Forums/en-us/home?forum=exceldev&filter=alltypes&sort=lastpostdesc
    Side note to whoever voted up the OP - why??
    Don't retire TechNet! -
    (Don't give up yet - 12,950+ strong and growing)

  • Regex that validates a list of comma separated emails

    I need some help with a regex that validates a list of comma separated (omitting the last) emails allowing arbitrary spaces   commas
    [email protected]  , [email protected],  [email protected]
    any ideas

    I think its best to simply whenever possible, especially when regular expressions are involved.
    I would use the String function split() to get an array of email addresses. You can split using a comma, and then use a two stage regex for your validation.
    1) strip any whitespace from the start and end of each email
    2) validate each email address
    Just in terms of code readability I think this might be the preferred approach.
    If this post answers your question or helps, please mark it as such.
    Greg Lafrance - Flex 2 and 3 ACE certified
    www.ChikaraDev.com
    Flex / AIR Development, Training, and Support Services

  • Problem when loop through a list within CollectionModel

    In my bean, I have these codes to define a node.
    Map<String, Object> node = new HashMap<String, Object>();
    node.put("Nodeid", nodeid);
    List theColors = new ArrayList();
    node.put("Colors", colors);
    node.put("Type", type);
    node.put("Desc", desc);
    Then, a list of these nodes are converted to CollectionModel using ModelUtils.toCollectionModel(nodes);
    In my jspx, I am able to loop through nodes, and get Type, Nodeid and Desc from the node to show on the screen.
    I am trying to loop through the list of colors within the node to draw circles with different diameter.
    <af:forEach var="theColor" items="#{node.Colors}" varStatus="vs">
    <dvt:pointLocation pointX="50%" pointY="50%">
    <dvt:marker id="mk2" scaleX="#{15-vs.index*2}" scaleY="#{15-vs.index*2}" shape="circle" fillColor="#{theColor}" />
    </dvt:pointLocation>
    </af:forEach>
    But above code does not work.
    Can someone help me? Any suggestions?
    Thanks.

    I want to call a javascript function inside a c:forEach loop.Nope sorry, won't work.
    Java/JSP runs on the server. At the server end, any html/script code is just template text to output to an html file.
    The server produces an html file, and sends it to the client.
    Java stops running.
    Java cannot call javascript, javascript can not call java. There is no direct communication.
    Java code can produce javascript code to run on a page.
    The only communication javascript has back with the server is if it makes a request (click a link, submit a button, Ajax call...)

Maybe you are looking for

  • Difference between GL and AA.  Error MQ555 in ABST2

    Hi,     My client has put an asset in service in 2009 (fiscal year 2010) with a value of 70,000 EUR. In 2010 (fiscal year 2011) my client has retired 20,000 EUR worth of it (Transaction ABAON). This amount is not showing in the asset values and the d

  • PO Lead Time cannot capture the time taken for shipping!

    Dear All I understand that we have PO lead time = PO Processing Time (Working Day) + Planned Delivery Time (Calendar Day) + GR processing time (working day). And this PO lead time will be added on top of my PO Creation Date to defer the actual goods

  • Table for area menu

    Hi All I have created custamized area menu and added transaction codes in this menu. I want to know which table these transactions are stored. Regards Kumar

  • Pass value to SQL

    Hi guys,I've encounted a problem which may be easy for you. <code> String SQL = "select * from tableA where m=? and n=?"; </code> In a latter method , I need to pass values to the SQL above <code> public List getInfo(String m,String n) // how to pass

  • Itunes latest version continually not responding

    Hi, I have had alwful trouble since itunes was last upgraded. Continually freezing and having to close through task manager. Fails to back up phone, fails to sync apps. Very frustrating. have tried running in safe mode still no good. I see that many