REGEXP: Count the number of commas before a given tank

Hi guys,.

I was wondering if this is possible? I want to count the number of commas ',' before a given string.

For example:
Let's say I have this string:
SELECT 'Hello', 
       dump('Hello {The ')
  FROM dual;
Which returns:
'HELLO'        DUMP('HELLO{THE')                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
------------------ -----------------------------------
Hello                            Typ=96 Len=11: 72,101,108,108,111,32,123,84,104,101,32
I was wondering if it is possible to count all commas before the 123 tank? In this example, it should return 6
Can anyone help?

Thank you

Something more in this sense then...

SQL> ed
Wrote file afiedt.buf

  1  with t as (select dump('Hello {The ') as dmp from dual)
  2  --
  3  select length(regexp_replace(regexp_substr(dmp,'[^ ]+,123',1,1),'[^,]')) as str
  4* from t
SQL> /

       STR
----------
         6

SQL>

Tags: Database

Similar Questions

  • Count the number of fields in a record of CSV file

    Hello

    Here's my problem. I need to open a CSV file on a directory and to count the number of fields in a record. I can easily read the first record using the package UTL_FILE, something like:

    UTL_FILE.fopen (s_remote_dir, s_csv_file, 'R', 32767);
    UTL_FILE.get_line (input_file, buffer_entree);

    then I count the number of commas in the buffer in order to get none. fields:

    IF buffer_entree IS NOT NULL THEN
    n: = < function that counts the number of commas in a string, buffer_entree >
    END IF;

    However, this method will not work If a comma is present within a field, that is to say:

    127763, account "TRA", 1001, 34, _ "1007 main St., apt. 798 "_"
    (last field contains a comma)

    Please notify.

    Kind regards
    M.R.

    Here is an example of regexp Etbins solution:

    SQL> declare
      2     line     varchar2(1000) := '127763, "TRA account", 1001, 34, "1007 main St., apt. 798", 42, "This, and that, and more"';
      3     fields   number;
      4  begin
      5     fields := regexp_count(regexp_replace(line,'".*?"'),',') + 1;
      6     dbms_output.put_line('Number of fields: '||to_char(fields,'TM9'));
      7  end;
      8  /
    Number of fields: 7
    

    Edit:
    Added the '+ 1', because the number of commas is a less number of fields ;-)

    Published by: Kim Berg Hansen on November 2, 2011 08:53

  • How to count the number of conditionally highlight cells in a column or row

    I'm working on a table to identify problems with my credit rating. So, I have a column that indicates the due date on the invoice and G that contains the date to which I made the payment.

    I'm trying to follow how many times I'm late with payments. I want to improve.

    So if the G column is later than column D, both with the Date formatting. So, now I've highlighted cells and I want to summarize for the year, how many times I was late payments.

    I thought a column G to count the number of days before or after that back I was with payments. But if the sum, it only gives me no useful information. I guess I could count the number of cells with values less than 0.

    I prefer to be able to put in the summary column for G something that said 0-12 years ago has highlighted cells in the column.

    Thank you

    You can not count based on sharing or formatting.  You can, however, be based on the same conditions.

    There are functions:

    COUNTIF() counties based on a condition is true

    and

    COUNTIFS() based on several conditions being true

    = NB. If

    Here is a way.  IT will take an additional column that calculates the "delay" in the days of a payment

    the first two lines are the lines of header

    H3 = IF (COUNTA (D3, G3) > 1, MAX ((G3−D3) DUR2DAYS, 0), "")

    It's shorthand dethrone select cell H3, and type (or copy and paste it here) the formula:

    = IF (COUNTA (D3, G3) > 1, MAX ((G3−D3) DUR2DAYS, 0), "")

    Now select cell H3, copy

    Select the H3 cells at the end of column H, dough

    H1 = "payments late =" & COUNTIF(H,">0")

  • Count the number of items in a list separated by commas of the values

    Hello friends,

    I have a string with a list of so-called values comma separated

    String v = 34343, erere, ererere, sdfsdfsdfs, 4454, 5454, dsfsdfsfsd, fsdfsdfsdfs, dfdsfsdfsdfs, sdsfdsf, ererdsdsd45454, Sylvie

    You want to count the number of items exist in this string.

    Thank you/Kumar

    Came to my mind as well.
    But I guess I'm typing too slowly, I had other options ran just a second there are tow:

    SQL> with t as (
      2  select  '34343,erere,ererere,sdfsdfsdfs,4454,5454,dsfsdfsfsd,fsdfsdfsdfs,dfdsfsdfsdfs,sdsfdsf,e
    rerdsdsd45454,fsdfsdfs' str from dual
      3  )
      4  --
      5  --
      6  --
      7  select length(str)-length(replace(str, ','))+1
      8  from   t;
    
    LENGTH(STR)-LENGTH(REPLACE(STR,','))+1
    --------------------------------------
                                        12
    
    SQL> with t as (
      2  select  '34343,erere,ererere,sdfsdfsdfs,4454,5454,dsfsdfsfsd,fsdfsdfsdfs,dfdsfsdfsdfs,sdsfdsf,e
    rerdsdsd45454,fsdfsdfs' str from dual
      3  )
      4  --
      5  --
      6  --
      7  select count(*)
      8  from ( select regexp_substr(str, '[^,]+', 1, rownum)
      9         from   t
     10         connect by level <= length(regexp_replace(str, '[^,]+'))+1);
    
      COUNT(*)
    ----------
            12
    
  • How to count the number of updates in a loop Forall

    Hi friends

    I want to know is - it possible to count the number of updates occurred in FORALL. I share the codes below. His only return the iteration number. If I spend 5 through the values of the PARAMETERS and 2 updates the values in the table then return 5 instead of 2.  My requirement is to count the number of updates have taken place and return this value to OUTPUT parameter. If possible, please share codes. Thank you very much...

    CREATE OR REPLACE PROCEDURE UPDATE_PROCESS_RATE 
              (
               V_HOSPITAL_ID IN HOSPITAL_SERVICE_MASTER.HOSPITAL_ID%TYPE,
               V_USER IN VARCHAR2,
               V_DATE IN DATE,
               V_PROCESS_ID  IN VARR_ARRAY,
               V_PROCESS_RATE IN NUM_ARRAY,
               V_NUM OUT NUMBER
               )
    
    
                IS
    
                    V_ERROR_CODE NUMBER(15);
                    V_ERROR_MSG VARCHAR2(200);
                    V_ARRAY_ID NUMBER(10,2);
                    V_TOTAL NUMBER:=0;                                            
       BEGIN
                  SAVEPOINT Sp1;
             BEGIN
       
                   FORALL i IN V_PROCESS_RATE.FIRST..V_PROCESS_RATE.LAST
                 
                               UPDATE HOSPITAL_SUBSERVICE_PROCESS M 
                               SET M.PROCESS_CHARGE=V_PROCESS_RATE(i)
                               WHERE M.HOSPITAL_ID=V_HOSPITAL_ID
                               AND M.HOSPITAL_PROCESS_ID =V_PROCESS_ID(i);
                                                        
                   FOR i IN V_PROCESS_RATE.FIRST..V_PROCESS_RATE.LAST LOOP
                
                       V_TOTAL:=V_TOTAL + SQL%BULK_ROWCOUNT(i);
                   End loop;
               
                       COMMIT;  
                       V_NUM:=V_TOTAL;           
    
    
    
    
    

    IndiMinds wrote:

    But my requirement is: it must count the update only when it detects a different value from array. When it detects a different value in the table must be updated and count it and if the update of the table value is similar the TI should not count it.

    For example, if the V_PROCESS_RATE table have these 3 values (10,20,30) and we need to update these 3 values with (10,40,50), so no update, it should return is 2 not 3.

    Thank you

    And then don't update these lines, change your update statement

    UPDATE HOSPITAL_SUBSERVICE_PROCESS M
    SET M.PROCESS_CHARGE=V_PROCESS_RATE(i)
    WHERE M.HOSPITAL_ID=V_HOSPITAL_ID
    AND M.HOSPITAL_PROCESS_ID =V_PROCESS_ID(i)
    AND DECODE(M.PROCESS_CHARGE,V_PROCESS_RATE(i),0,1) = 1;
    
  • How to count the number of nodes under each parent in any given xml

    How to count the number of nodes under each parent in any given xml. for example the xml below was
    books has 3 childern, library [1] has 4, [2] library has 6 and bookshop [3] has 2. is it possible to get the number of tags in a childnode duplicate IE library [1]
    Book1 Tagus repeated twice... vice versa. do we need to make plsql lie we can achieve through sql

    < book >
    < library >
    ABC < book1 > < / book1 >
    BCA < book2 > < / book2 >
    ACR < book1 > < / book1 >
    Lac < Book4 > < / Book4 >
    < / book >
    < library >
    ABC < book1 > < / book1 >
    BCA < book2 > < / book2 >
    ACR < book3 > < / book3 >
    ACR < book3 > < / book3 >
    tray of < bookn_1 > < / bookn_1 >
    adjusted cost base < bookn > < / bookn >
    < / book >
    < library >
    ABC < book1 > < / book1 >
    BCA < book2 > < / book2 >
    < / book >
    < / books >


    I tried this... query.

    Select
    XMLQUERY ('count($doc/Books/Bookstore[1]/descendant::*)' in the way of xmltype ("< books >
    < library >
    ABC < book1 > < / book1 >
    ACR < book1 > < / book1 >
    Lac < Book4 > < / Book4 >
    < / book >
    < library >
    ABC < book1 > < / book1 >
    BCA < book2 > < / book2 >
    < / book >
    (< / books > ')
    as 'doc' of happy return) .getNumberVal () as node_count
    of the double

    Select
    XMLQUERY ('count($doc/Books/descendant::*)' in the way of xmltype ("< books >
    < library >
    ABC < book1 > < / book1 >
    ACR < book1 > < / book1 >
    Lac < Book4 > < / Book4 >
    < / book >
    < library >
    ABC < book1 > < / book1 >
    BCA < book2 > < / book2 >
    < / book >
    (< / books > ')
    as 'doc' of happy return) .getNumberVal () as node_count
    of the double

    How can I get the counts for each parent in a single query

    Published by: user7955917 on August 24, 2012 07:26

    Generic function how you want the query to be.

    If the structure is known in advance, as in your example a 'books' and then a 'library' root element, it's as simple as:

    SQL> select x1.parent_id, x2.child_name, count(*)
      2  from tmp_xml t
      3     , xmltable(
      4         '/books/bookstore'
      5         passing t.object_value
      6         columns parent_id   for ordinality
      7               , child_list  xmltype path '*'
      8       ) x1
      9     , xmltable(
     10         '/*'
     11         passing x1.child_list
     12         columns child_name varchar2(30) path 'name()'
     13       ) x2
     14  group by x1.parent_id, x2.child_name
     15  order by x1.parent_id, x2.child_name
     16  ;
    
     PARENT_ID CHILD_NAME                       COUNT(*)
    ---------- ------------------------------ ----------
             1 book1                                   2
             1 book2                                   1
             1 book4                                   1
             2 bookn                                   1
             2 bookn_1                                 1
             2 book1                                   1
             2 book2                                   1
             2 book3                                   2
             3 book1                                   1
             3 book2                                   1
    
    10 rows selected
     
    

    If you want a generic solution that works without knowledge of the structure, you will need a recursive approach, and most importantly, you should know which nodes in distinct, I suppose that the leafs?

    Also, please help if you can provide the link of reference on the function name() years what are the other expression, that I can use after the path

    You can start reading the documentation: http://docs.oracle.com/cd/E11882_01/appdev.112/e23094/xdb_xquery.htm#CBAGCBGJ

    The clause PATH expects a XQuery expression however before 11.2, we can put only simple XPath expressions.

  • Count the number of zero terms between non zero terms

    Hello.  I have a table of data of zero and nonzero (example: {1 2 56 2 3 0 0 0 0 0 2 3 5 2 3 5 2 0 0 0 0 32 43}) I need to count the number of zeros of each string of zeros and mark that number against the first zero no term following the string of zeros (NOTE (: string is used here as a description of a series of zeros, not a string variable).  So the plot which coordinates since my example would be (5.2) and (4.32).

    I'm clear on the way to the path, but I am unable to store only each final count of consecutive zeros without having unnecessary data in my plot.

    Thanks in advance to all those who have advice!

    -Mike

    Do something like that?

    EDIT: Minor Correction because of the additional function of decrement.

  • How to count the number of edges using counters SMU-6363

    Hello

    I'm counting the number of edges in a test signal in a duration of 50 Ms I use the SMU-6363 map and connect to the TRC test signals 0 SRC (PFI 8). Is that a correct connection? What else do I need hardware wise be a correct set for this application?

    Thank you

    Jeet

    Hi Jeet,

    This configuration is correct. Hardware wise, that's all you need to do.

    Kind regards

    Jorge Fernandez
    Technical sales engineer
    National Instruments
    ____________________________________________
    Certified LabVIEW Associate Developer (CLAD)

  • SE I can count the number of lines of UN chain?

    Hello that tal me preguntaba if hay alguna funcion that can count the number of lines that has string of United Nations, for example digamos than esto tengo:

    Hola

    Como

    estas

    Ok

    Son 4 lines, pero hay una funcion as arroje ese resultado? o tengo than generarlo? alguna idea?

    Saludos, buen dia.

    How to dice "Rube Goldberg" en Español?

  • Count the number of 1 is present in digital waveforms obtained by converting the pulse signals.

    Hello

    I use Analogtodigital.Vi to convert the pulse of the sequences in digital.signals.I am able to get the representation of digital waveforms of impulses.

    But how to count the number of 1 is present in the converted digital waveform. I want to count the number of 1 is present in the digital waveform converted.

    Thanks in advance.

    Have you tried the block scheme of similar to the Digital.vi of opening?

    It creates an array 2D uncompressed 1 and 0, which is the binary 16 bits A/D conversion of each element in the array Y of the input waveform. You can use the DWDT digital Array.vi Boolean to convert a 2D Boolean table. Then convert Boolean values to 1.0 and summarize the array of integers. The sum must be the number of 1 bits in the digital waveforms.

    Lynn

    Note: The VI attached is saved in version 8.6. When I have it saved for the previous Version a warning was generated about the possible differences in the versions. Let me know if it doesn't work, and you are using which version of LV.

  • count the number of repetitions of items

    I want to count the number of repetitions in column 2, which correspond to each of the categories in column 1 in table. Rehearsals in col 2 should be the same issue, so I would get the representatives by category and item.
    Can someone help me please?
    Thanks in advance.


  • How to count the number of AAA clients

    Hello

    As we know, ACS5.2 is necessary with a basic license - 500 devices support network.

    Sometimes, there are a lot of AAA clients or network devices that are authenticate simultaneous. So my question is, how to count network devices allowed to auth on ACS5.2? This only includes network, including network devices, or the AAA clients or devices?

    Rgds,

    Laowu5017

    Hello

    ACS 5.x counts the number of AAA clients that are configured on the ACS.

    Please note that clients and network devices of AAA is the same and they conform, switches, routers, WLCs, or any other device configured under

    Network resources > ... > Network devices and the AAA Clients

    The AAA Clients aren't the AAA suplicants.

    End-user PCs customers are the AAA suplicants, and for this, there is no limit to number.

    HTH,

    Tiago

    --

    If this helps you or answers to your question if it you please mark it as 'responded' or write it down, if other users can easily find it.

  • BlackBerry smartphones change the number of rings before going to voicemail BB8830

    Hello

    Is there a way to change the number of rings before that switches phone to voicemail? It seems to me miss a lot of calls, especially now with winter clothing.

    It takes time for unfumble the BB out of the Holster with several layers of clothing...

    Thank you

    Lubo

    Thanks for the pointer.

    I found the rest of reference to the website of Bell Mobility (Canada), that solved my problem:

    How can I choose the number of rings before the center of messages or no answer transfer picks up?

    To set the number of rings before messages or center of the Express Message Centre picks up, follow these steps:

    From your mobile phone, press on * 94, followed by the number of standard rings you would like that your callers hear before display se pick up; This can be between 2 and 9. (For example * 942 to 2 rings)

    1. Press SEND or TALK
    2. If the change is successful, you will hear a confirmation tone. If the change was not successful, you will hear a fast busy signal; Repeat steps.
  • How to count the number of updates in a loop?

    Hello world

    Warm greetings

    I'm using Oracle 11 g. I want to count the number of updates inside a loop. If updating not only one value in the table, then it should return 0 otherwise, it should count the number of updates and return it. I used SQL % ROWCOUNT, but returning an incorrect value.

    I share the sample codes.

    procedure proc1 (vid IN Number, vprocessId IN varr_varray, vCharge IN vnum_varray,vcnt OUT)
    IS
    vFlag Number(3):=0;
    Begin
    
    
    vflag:=vprocessId.FIRST;
    If vflag is not null then
    For vprocessId.FIRST..vprocessId.LAST
    Loop
    Update table set colCharge=vCharge(i)
    where colId=vid
    and  colProcessId= vprocessId(i);
    
    
    
    
    End Loop
    End;
    

    Please close the question if it has been answered.

  • Count the number of rows in a table (s)

    Hi all

    I have a TKT_PRIORITY_LK table that I want to count the number of rows returned by a priority level... say Low, Medium, High, critical. I want to be able to count how many of each created are they, instead returning ID instead, if making any sense... Can you please help with this.

    Example; Select count (*) in TKT_PRIORITY_LK

    PRIORITY group

    Kind regards

    Sandrine

    Try this

    Select a.PRIORITY, count (*) from TKT_PRIORITY_LK a, TKT_TICKET_MAIN b

    where a.id = b.PRIORITY_ID

    A.PRIORITY group

Maybe you are looking for