Comma seperated values..

I have a string values like this an input to the stored procedure, LED32,134AB, 65FR,3422, ANZ82.
i need to convert this as ('LED32','134AB', '65FR','3422', 'ANZ82') to make use in the IN clause.
Can someone help me to convert the string?

And to hit the indexes;
CREATE OR REPLACE FUNCTION fn(pv_list VARCHAR2) RETURN SYS_REFCURSOR IS
   rc SYS_REFCURSOR;
BEGIN
   OPEN rc FOR
      WITH subq AS (
         SELECT regexp_substr(pv_list,
                              '[[:alnum:]]+',
                              regexp_instr(pv_list, '(^|,)', 1, rownum)) val
         FROM dual
         CONNECT BY rownum <= length(regexp_replace(pv_list, '[^,]')) + 1)
      SELECT c
      FROM t, subq
      WHERE t.c = subq.val;
   RETURN rc;
END;
/

Similar Messages

  • How to store Comma Seperated Value in a File with Jsp

    Hai friends,
    I need to get all the filed values like Empname,salary ,location..........
    and at the end of jsp page i have to put a browse button when i choose a file using theis browse button the total content in the form shoud store in that file as comma seperated values.

    1. Create JSP
    2. When you click the button call the event that saves the data in CSV format
    Your question is so broad, I don't have exact answer for you.
    What have you done so far?
    The man with blues.

  • How to query the comma seperated values stored in Database

    Hi,
    I have a strange scenario, I am storing the specific data as a comma seperated value in the database. I want to query the DB with the comma seperated value as a Bind variable against the comma seperated value stored in DB.
    For eg : The data stored in DB has
    Row1 - > 1,2,3,4,5,6,7,8
    Row2 - > 4,5,6,7,8,9,10
    When I pas the Bind variable as '4,8' I should get Row1 and Row2 .
    Quick help his highly appreciated.. Thanks in Advance

    Oh, and if you actually wanted the data returned rather than just the row primary keys....
    SQL> ed
    Wrote file afiedt.buf
      1  with t as (select 1 as rw, '1,2,3,4,5,6,7,8' as txt from dual union all
      2             select 2, '4,5,6,7,8,9,10' from dual union all
      3             select 3, '1,6,7,9' from dual)
      4  -- end of test data
      5      ,r as (select '4,8' as req from dual)
      6  -- end of required data
      7      ,split_t as (select rw, regexp_substr(txt, '[^,]+', 1, rn) as val
      8                   from t, (select rownum rn from dual connect by rownum <= (select max(length(regexp_replace(t.txt, '[^,]'))+1) from t))
      9                   where regexp_substr(txt, '[^,]+', 1, rn) is not null
    10                  )
    11      ,split_r as (select regexp_substr(req, '[^,]+', 1, rownum) as val
    12                   from r
    13                   connect by rownum <= length(regexp_replace(req, '[^,]'))+1
    14                  )
    15  --
    16  select distinct t.rw, t.txt
    17  from   split_t st join split_r sr on (st.val = sr.val)
    18                    join t on (t.rw = st.rw)
    19* order by 1
    SQL> /
            RW TXT
             1 1,2,3,4,5,6,7,8
             2 4,5,6,7,8,9,10
    SQL>

  • Have a column which is having comma seperated values.. and i am trying to s

    Have a column which is having comma seperated values.. and i am trying to seperate it.
    I am trying to create a stored procedure ..Version 11g xe. .and apex version 4..
    Here is the part of code..I cant make a procedure. .cause my statement consist with clause..
    create or replace procedure ins_adv_invoice
    (mmagazine_no number,madvtno number,missueno number,msection varchar2,mpagenumber varchar2,msalesman_code varchar2)
    is
    cursor cx is with testa as
    (select pagenumber name from advertiser)
    select regexp_substr(pagenumber, '[^,]+', 1, rownum) result
    from advertiser
    connect by level <= length(regexp_replace(pagenumber, '[^,]+')) + 1
    where advt_no = madvtno;
    begin
    for xxx in cx
    loop
    insert into adv_invoice (magazine_no,advtno,adissue,section,page_number,salesman_code)
    values (mmagazine_no,madvtno,missueno,msection,xxx.result,msalesman_code);
    end loop;
    end;
    But when i run this .. it doesnt create procedure. .I get he following error..
    LINE/COL ERROR
    5/14 PL/SQL: SQL Statement ignored
    9/69 PL/SQL: ORA-00933: SQL command not properly ended
    SQL>
    Still not able to figure it out..Can any one help..
    Thanks

    Change the query to swap the last two lines:
    cursor cx is with testa as
    (select pagenumber name from advertiser)
    select regexp_substr(pagenumber, '[^,]+', 1, rownum) result
    from advertiser
    where advt_no = madvtno
    connect by level <= length(regexp_replace(pagenumber, '[^,]+')) + 1;
    ...

  • Inserting comma seperated values

    I created a stored procedure that creates an order_id. Using this id, the products and their pricetag are inserted. Hereafter the garnishes are inserted for each product.
    Creating an order id and inserting the products and their pricetag are working. The problem is at the inserting of garnishes. 
    The data is received by parameters, and I have also created a user defined type: where garnishId holds the comma seperated ids.
    CREATE TYPE [dbo].[ppg] AS TABLE(
    [ProductId] [int] NULL,
    [PriceId] [int] NULL,
    [garnishId] [VARCHAR](MAX) NULL
    this is the stored procedure:
    ALTER PROCEDURE [dbo].[sp_create_order]
    (@userId uniqueidentifier, @productPriceGarnishes dbo.ppg READONLY, @comment varchar(250))
    AS
    BEGIN
    DECLARE @orderId int
    DECLARE @orderDetailId int
    INSERT INTO orders (user_id, confirmed,comment) values(@userId,0,@comment);
    --Select last inserted PK
    SELECT @orderId=SCOPE_IDENTITY()
    -- insert products and price tag using @orderId
    INSERT INTO order_detail (order_id, product_id,price_id)
    SELECT @orderId, p.ProductId,
    p.PriceId
    FROM @productPriceGarnishes p
    SELECT @orderDetailId=SCOPE_IDENTITY()
    -- insert garnishes using the orderDetailId
    INSERT INTO order_detail_garnish (order_detail_id,garnish_id)
    SELECT @orderDetailId, (SELECT * FROM SplitDelimiterString(p.garnishId))
    FROM @productPriceGarnishes p
    END
    RETURN @orderId
    I found a function that splits the string by a delimiter in this website:
    http://www.codeproject.com/Tips/586395/Split-comma-separated-IDs-to-ge
    Where you can retrieve the ids by this query:
    (SELECT * FROM SplitDelimiterString(p.garnishId)
    The problem is that I don't know how to add these ids with their corresponding orderDetailId, after each product is added.

    Unfortunately it appears you assume too much.  Presumably the reason you chose to define @productPriceGarnishes as a table is to support the creation of multiple rows. And you use these rows to insert into the order_detail table which has an identity
    column as the primary key (again, presumably).  So the question then becomes how do you get the identity values for ALL of the inserted rows?  You can't do that with SCOPE_IDENTITY - your code currently is designed with the assumption that there
    is only one row to be inserted.  To work around that limitation you need to use the output clause (examples can be found by searching). 
    Next comes another problem.  How do you know which identity value is assigned to which row of your table variable during the insert?  You need some sort of natural key to associate the inserted rows with the rows in the table variable.  Do
    you have one?  Before you think you do, you need to think about what restrictions are placed on the content of the table variable (if any).  Is it possible to have multiple rows with the same values for ProductId and PriceId?  Do not assume
    - you need to be certain that this is or is not a possibility.
    Assuming that the rows are unique (which simplifies things greatly), you associate the inserted order_detail rows to the table variable via something like:
    select ... from @ins_detail as ins inner join @productPriceGarnishes as ppg
    on ins.ProductId = ppg.ProductId and ins.PriceId = ppg.PriceId
    Note that @ins_detail is a table variable that you would declare and populate via the output clause. It will contain the identity values for each row that you inserted.  With that, you can then generate the rows that you need to insert into the garnish
    table by applying the results of your splitter function.  Which is a step that I'll skip for now since you have much reading and work to do. 
    Now some last comments.  I am suspicious of a column named PriceId.  That is not a good sign - price is an attribute of something and not the basis of a relationship between tables.  The use of identity columns (especially as primary keys)
    can be a problem - and this is one good example.  Based on what I've just written and its assumptions, the natural key for order_detail is (order_id, product_id, price_id) - why do you need an identity column?  Again, searching will find past
    discussions about identity columns and their usage.

  • How to convert string containing comma seperated values to an array

    my requirement is i have to first convert an comma seperated string to an array
    after that i have to pass the array values to a for loop
    eg:i have a string str=(456,457,487,465,478)
    These values i have to put in an array.
    i then i have to pass the array values to a for loop

    We understand your ¿homeworks? We are helping you, but it seems like you want us to do it.
    Try it yourself with some of the instructions.
    Anyway if there aren´t homeworks, use dinamyc sql:
    declare
    varray := '(45,65,12,4)';
    begin
    execute immediate 'update table set ss=''uu'' where id in ' || varray;
    end;

  • Cut comma seperated value

    Can you pls help me on this
    table: emp_master
    Ename     Bonus(%)
    abc     15,5,20,10,40,10
    xyz     10,10,20,60
    table emp_sal
    Ename     Var
    abc     1000
    xyz     2000
    output result :
    Ename     Var
    abc     150(15 % X 1000)(15 is the first value from the comma seperated list in emp_master table)
    abc     50  ( 5 % X 1000) (5 is the second value from the comma seperated list in emp_master table)
    abc     200 (20 % X 1000)
    abc     100
    abc     400
    abc     100
    xyz     200
    xyz     200
    xyz     400
    xyz     1200Thanks in advance
    Edited by: user12093849 on Feb 3, 2010 12:34 AM

    Assuming you're on at least database version 10G:
    SQL> -- generating sample data:
    SQL> with emp_master as ( select 'abc' ename, '15,5,20,10,40,10' bonus from dual union all
      2                       select 'xyz', '10,10,20,60' from dual
      3                     )
      4  ,    emp_sal as ( select 'abc' ename, 1000 var from dual union all
      5                    select 'xyz', 2000 from dual
      6                  )
      7  --
      8  -- actual query:
      9  --
    10  select m.ename
    11  ,      m.bonus
    12  ,      s.var*m.bonus
    13  from  ( select a.ename
    14          ,      level lvl
    15          ,      regexp_substr (bonus, '[^,]+', 1, level)/100 bonus
    16          from   emp_master a
    17          connect by level <= length(regexp_replace(bonus,'[^,]*'))+1
    18          group by ename, bonus, level
    19         ) m
    20  ,      emp_sal s
    21  where  s.ename=m.ename      
    22  order by m.ename, m.lvl
    23  /
    ENA      BONUS S.VAR*M.BONUS
    abc        ,15           150
    abc        ,05            50
    abc         ,2           200
    abc         ,1           100
    abc         ,4           400
    abc         ,1           100
    xyz         ,1           200
    xyz         ,1           200
    xyz         ,2           400
    xyz         ,6          1200
    10 rows selected.

  • Converting the comma seperator value  format

    i am getting the content of a table in a internal table with comma separator value format, dynamically by using dfies table i am getting the header of the table, and displaying it in the output, now my query is that the content of the data which i am getting in a itab having only one field of type string
    data : begin of itab occurs 0,
              data1 type string,
             end of itab.
    some where they were concatenating the content of the data and storing it inthe itab, now i want the content of the itab should be displayed corresponding to there header in the output

    Hi Santosh,
    You can remove the commas from the record by using the REPLACE command as below -
    LOOP AT itab.
      DO.
        REPLACE ',' WITH '' INTO itab-data1.
        IF sy-subrc NE 0.
          EXIT.
        ENDIF.
      ENDDO.
    ENDLOOP.
    Reward points if found useful...!
    Cheers
    Abhishek

  • Column should display comma seperated value.

    Hi All,
    Iam working on Reports6i.
    In my data model i have a query which gives some product names(only one column), i need to display those product names with a comma seperator.
    Just like Product1,Product2,....
    Can anybody guide me as this is very urgent.
    Thanks in Advance
    Chinni.

    something like this ?
    WITH DATA AS (SELECT 'X' product,1 order_id FROM DUAL
                  UNION ALL
                  SELECT 'Y' product,1 order_id FROM DUAL
                  UNION ALL
                  SELECT 'Z' product,1 order_id FROM DUAL
                  UNION ALL
                  SELECT 'XX' product,2 order_id FROM DUAL
                  UNION ALL
                  SELECT 'YY' product,2 order_id FROM DUAL
                  UNION ALL
                  SELECT 'ZZ' product,2 order_id FROM DUAL
    SELECT LTRIM(sys_connect_by_path(product,','), ',') PRODUCTS
      FROM (SELECT product,
                   order_id,
                   row_number()   OVER (partition by order_id order by product) RN,
                   count(product) OVER (partition by order_id) MAXROW
              FROM data) 
    WHERE RN=MAXROW CONNECT BY     PRIOR RN+1=RN
                                AND PRIOR ORDER_ID=ORDER_ID START WITH RN=1

  • Mapping a column with comma seperated values

    Hi,
    I have two tables
    1. Tasks (task_id, task_description)
    2. Task_assignment (username, task_assignment_value)
    the task_assignment_value has a comma seperated list of task_ids.
    What is the best ways to map the tables ?
    Thanks in advance.
    Moinuddin Mohammed

    I have a couple of attributes where I do this. From TopLink's perspective, I just map it as a String. Then, in my accessors for the attribute, I transform the primitive between the String and an Array or however the rest of the app wants to see the attribute.
    Here's an example that's actually more complicated than absolutely necessary. The mapped attributed is indicatorValueListString. It is lazily converted to an Array of Enums when it is first accessed. And it is converted back to a String in the preWriteEventCallback that is mapped in the TopLink descriptor.
    This implementation attempts to minimize the number of times the String<->Array conversion takes place, but if that's not a concern, it could be made much more simple. Also, at my company we privately manage collections with the Collection classes for dynamic allocation, but publicly exchange Arrays for type-safety. This could also be factored out. ValuedEnumUtils basically manages asking the enum for its delimiter and performing the actual conversion between a String and an Array or back.
    private String indicatorValueListString;
    private List indicatorValueSelections;
    private List indicatorValueSelections() {
            if (indicatorValueSelections == null) {
                    indicatorValueSelections = new ArrayList();
                    if (indicatorValueListString != null) {
                            indicatorValueSelections =
                                    java.util.Arrays.asList(ValuedEnumUtils.decodeEnumString(
                                         IndicatorValueEnum.class,indicatorValueListString));
            return indicatorValueSelections;
    private void indicatorValueSelections(List newIndicatorValueSelections) {
            indicatorValueSelections = newIndicatorValueSelections;
    public IndicatorValueEnum[] getIndicatorValueSelections() {
            return (IndicatorValueEnum[])indicatorValueSelections().toArray(new IndicatorValueEnum[0]);
    public void setIndicatorValueSelections(IndicatorValueEnum[] newIvSelections) {
            indicatorValueSelections(java.util.Arrays.asList(newIvSelections));
    public boolean addIndicatorValueSelection(IndicatorValueEnum anIvEnum) {
            return indicatorValueSelections().add(anIvEnum);
    public boolean removeIndicatorValueSelection(IndicatorValueEnum anIvEnum) {
            return indicatorValueSelections().remove(anIvEnum);
    public void preWriteEventCallback(DescriptorEvent aDescriptorEvent) {
            // Note: Not using accessor to avoid lazy initialization if no changes
            // are necessary.
            if (indicatorValueSelections != null) {
                    indicatorValueListString =
                            ValuedEnumUtils.encodeEnumString((ValuedEnum[])indicatorValueSelections.toArray());
    }

  • ODI:  Loading Comma Seperated Value Flat files...

    We are attempting to load our flatfiles using the LKM File to Oracle (SQLLDR)...
    First something that is goofy is that the SQLLDR appears to be looking for a .dat file instead of the flatfile we have given it. Our flatfiles do not have any extentions on them (ex. mmi_prem_fin, mmi_agent_contact, etc...) Is SQLLDR looking for a flatfile with an extention and if not finding one looking for a .dat file extention? Anyone run into this?
    Second, after we get past that first problem then the scond one that creeps up is the SQLLDR appears to be bringing in the information into the source table without excluding the quotes around the field information. We specified that the flatfile is comma delimited and text is seperated by dbl quotes.
    Any and all help will be apprecaited... Thank you in advance...
    Tom Cusick

    JUPS wrote:
    Hi,
    I am facing trouble in inserting comma separated list in form of single string like:
    Year = '2009,2010,2011,2012'
    Now i need to push each value into a VARRAY, can anyone help me on this.
    Thanks,
    SreekanthLOOP
    Handle:      JUPS
    Status Level:      Newbie
    Registered:      Aug 6, 2008
    Total Posts:      201
    Total Questions:      98 (59 unresolved)
    so many questions & so few answers.
    how sad!
    Edited by: sb92075 on Sep 13, 2011 10:20 AM

  • Operations on comma seperated values..

    Hi all,
    We have some histogramic values which are kept in one column and from time to time we need to propagate them in order to fill the history tables like :
    table_1
    c1 -- c2 -- c3
    a -- 1,1,1--11
    a -- 2,2,2--11
    a -- 3,3,3--11
    b -- 4,4,4--22
    b -- 5,5,5-22
    c -- 6,6,6-22
    select c1,sum???(c2),sum(c3) from table_1 group by c1;
    c1 -- sum???(c2) -- sum(c3)
    a -- 6,6,6--33
    b -- 15,15,15--66
    The point is to do the operations seperaterly with the first value, second value,... seperately.
    Any ideas about this ?
    Thanks,
    Evren

    Hi, Evren,
    Welcome to the forum!
    Whenever you have a problem, it helps if you post your sample data in some form that people can use to actually re-create it.
    CREATE TABLE and INSERT statements are great. for example:
    CREATE TABLE     table_1
    (      c1     VARCHAR2 (5)
    ,      c2     VARCHAR2 (20)
    ,      c3     NUMBER
    INSERT INTO table_1 (c1, c2, c3) VALUES ('a', '1,1,1', 11);
    INSERT INTO table_1 (c1, c2, c3) VALUES ('a', '2,2,2', 11);
    INSERT INTO table_1 (c1, c2, c3) VALUES ('a', '3,3,3', 11);
    INSERT INTO table_1 (c1, c2, c3) VALUES ('b', '4,4,4', 22);
    INSERT INTO table_1 (c1, c2, c3) VALUES ('b', '5,5,5', 22);
    INSERT INTO table_1 (c1, c2, c3) VALUES ('c', '6,6,6', 22);That's not a very good design. If the items in c2 are separate entities, they should be in separate columns (or maybe on sepaarte rows, in a separate table, with a one-to-many relationship to table_1).
    If you can't change the table structure permanently (which is the best solution), then you'll have to generate a result set that mimics that (more or less) every time you need to use that column as separate entities.
    [This thread|http://forums.oracle.com/forums/thread.jspa?threadID=945432&tstart=0] shows how to split a delimited list into parts.
    After you've calculated the individual totals, use the || operator to cram them back into one column, if necessary.
    For example:
    SELECT       c1
    ,       SUM (TO_NUMBER (REGEXP_SUBSTR (c2, '[^,]+', 1, 1))) || ',' ||
           SUM (TO_NUMBER (REGEXP_SUBSTR (c2, '[^,]+', 1, 2))) || ',' ||
           SUM (TO_NUMBER (REGEXP_SUBSTR (c2, '[^,]+', 1, 3)))          AS sum_c2
    ,       SUM (c3)                                                     AS sum_c3
    FROM       table_1
    GROUP BY  c1
    [email protected] wrote:Hi all,
    We have some histogramic values which are kept in one column and from time to time we need to propagate them in order to fill the history tables like :
    table_1
    c1 -- c2 -- c3
    a -- 1,1,1--11
    a -- 2,2,2--11
    a -- 3,3,3--11
    b -- 4,4,4--22
    b -- 5,5,5-22
    c -- 6,6,6-22
    select c1,sum???(c2),sum(c3) from table_1 group by c1;
    c1 -- sum???(c2) -- sum(c3)
    a -- 6,6,6--33
    b -- 15,15,15--66Are you sure that's the output you want from the data you gave?
    When I run the query above with the same data, I get:
    C1    SUM_C2                   SUM_C3
    a     6,6,6                        33
    b     9,9,9                        44
    c     6,6,6                        22

  • Passing Multiple comma seperated values to a report

    Hi,
    I have a form that a user can select multiple customer ids by checking the check box. I need to pass these values to report to be used in the IN clause of query. eg.
    select a, b, c
    from test
    where a in ('01', '03', ...)
    how can i do that
    Faisal

    Hi Faisal
    I've used the solution discussed here and works fine.
    http://asktom.oracle.com/pls/ask/f?p=4950:8:::::F4950_P8_DISPLAYID:110612348061
    Regards.
    Cecilio

  • Convert rows into comma seperated values

    Hello I have a question,
    I have a table like this.
    Memid           values
    1                  10
    1                 20
    2                30
    3                50
    3                60
    3               10
    i want to convert it like this
    memid              values
    1 10,20
    2                      30
    3                       50,60,10
    Can you please provide a solution.. 
    Thanks

    SELECT Memid,
    STUFF((SELECT ',' + CAST([values] AS varchar(10))
    FROM Table
    WHERE Memid = t.Memid
    FOR XML PATH(''),TYPE),value('.','varchar(max)'),1,1,'') AS [values]
    FROM (SELECT DISTINCT Memid FROM Table)t
    see
    http://visakhm.blogspot.in/2014/01/rowset-concatenation-with-special.html
    Please Mark This As Answer if it solved your issue
    Please Vote This As Helpful if it helps to solve your issue
    Visakh
    My Wiki User Page
    My MSDN Page
    My Personal Blog
    My Facebook Page

  • Converting comma seperated values in rows

    Hi Friends
    I have a column in which values are like
    col1
    1,2,3How do I convert them into the following:
    col2
    1
    2
    3Thanks...

    darshilm wrote:
    Oracle Database 10g Enterprise Edition Release 10.2.0.2.0 - 64bit Production
    With the Partitioning, OLAP and Data Mining options
    with data as
       select 1 as col1, 'a,b,c' as col2 from dual union all
       select 2, 'd,e,f' from dual
    select
       col1,
       regexp_substr(col2, '[^,+]', 1, t.column_value) as split_string
    from
       data d,
       table(cast(multiset(select level from dual connect by level <= length(regexp_replace (d.col2, '[^,]+'))  + 1) as sys.OdciNumberList)) t
    12  /
                  COL1 SPLIT
                     1 a
                     1 b
                     1 c
                     2 d
                     2 e
                     2 f
    6 rows selected.
    Elapsed: 00:00:01.12
    ME_XE?
    ME_XE?select * from v$version;
    BANNER
    Oracle Database 10g Express Edition Release 10.2.0.1.0 - Product
    PL/SQL Release 10.2.0.1.0 - Production
    CORE     10.2.0.1.0     Production
    TNS for Linux: Version 10.2.0.1.0 - Production
    NLSRTL Version 10.2.0.1.0 - Production
    5 rows selected.
    Elapsed: 00:00:01.00
    ME_XE?

Maybe you are looking for

  • My Mac Pro Desk Top computer no longer can "see" my second display??

    I've tried reversing the connections on the back of the MacPro but it still doesn't "see" the second display.  I've had these two displays hooked up for years with no problems.  I recently upgraded to Mountain Lion and I just had the MacPro in the Ap

  • Change the colour of critical activity

    Dear All, I want to change the colour of critical activity in project planning board (Date bar text). I am not able to find the solution for that. Kindly guide me on the same. Regards Abhishek Sinha

  • AS CS3 - how to paste then select pasted text

    Would love help with this: Part of my script will paste text. After pasting, I would like the script to then select the pasted text (so that it can proceed to apply a style sheet). How can I specify such a selection? Thanks.

  • Aperture not reading EXIF Image Capture time properly

    Hi I have recently imported a folder of Raw/JPEG files into Aperture as a new project.  They previously had been managed in Media Pro.  When I sorted the images by date, I found that some (but not all) Raw files didn't have the image capture time rec

  • ATM Light no longer available for Windows

    I just went to the download page for ATM Light, and found that while the Mac version is still available, there is no longer a link to download ATM 4.1.2 for Windows. All that's there is a note saying that it's not needed for Windows 2000 and the syst