Split range of dates into rows

Hi,
I have a table which basically has an account id and two dates (from and to). Sample data:
Account ID       Balance Amt        Valid From           Valid To
100000524       104.32               29/07/2010         05/08/2010
100000524       104.32               03/11/2010         25/12/2010
100000365       104.32               29/07/2010         05/08/2010What I currently do is that I loop on each record (per Account and Order by valid From). Then each row I processed into this query to split it into multiple rows - final result should be that for each of the month on the range I'll get the last day of it. See below for results:
select account_id, balance_amt,
       last_day(add_months(valid_from_dttm, level - 1)) as valid_to_dttm
FROM d
CONNECT BY LEVEL <= ( SELECT TRUNC( MONTHS_BETWEEN( LAST_DAY(valid_to_dttm),
                                                    TRUNC(valid_from_dttm, 'Month'))
                                  ) + 1 lvl
                      FROM dual )
Account ID       Balance Amt        Valid To
100000524       104.32               31/07/2010        
100000524       104.32               31/08/2010 It's pretty slow since I do it row by row. Is there any other way (faster) to do this? Thanks.
I forgot to say is that one of the trouble I'm getting here is that the dates are overlapping e.g.:
Account ID       Balance Amt        Valid From           Valid To
100000524       104.32               29/07/2010         05/08/2010
100000524       65                     05/08/2010         25/10/2010
100000524       10                     25/10/2010         20/12/2010So in this case the August month should only be displayed once with the value of 65 since it's the "latest".
Edited by: mortonmorton on Apr 25, 2011 2:14 AM
Edited by: mortonmorton on Apr 25, 2011 2:19 AM

Hi Guys,
I've tried both your queries and it's the same issue I'm getting which is duplicate rows of the month end dates. So using the model clause above (just tweaking the data):
with d as
( select 100000524  account_id, 104.32 balance_amt, to_date('29/07/2010','DD/MM/YYYY') valid_from_dttm,  to_date('05/09/2010','DD/MM/YYYY') valid_to_dttm from dual union
  select 100000524, 16.32,  to_date('05/09/2010','DD/MM/YYYY'), to_date('25/12/2010','DD/MM/YYYY') from dual union
  select 100000365 , 104.32,  to_date(' 29/07/2010 ','DD/MM/YYYY'), to_date('05/08/2010','DD/MM/YYYY') from dual
select account_id, balance_amt,  last_day(add_months(valid_to_dttm,-1)) new_valid_to_dttm
from d
model
partition by (account_id, balance_amt, valid_from_dttm, valid_to_dttm vtd)
dimension by (0 d)
measures (valid_to_dttm,  valid_from_dttm vfd )
rules
valid_to_dttm[for d  from 1 to
                      MONTHS_BETWEEN (LAST_DAY (valid_to_dttm[0]), TRUNC (vfd[0], 'Month') )
                      increment 1] =   add_months(valid_to_dttm[cv()-1],1)
order by account_id, valid_to_dttm
ACCOUNT_ID     BALANCE_AMT     NEW_VALID_TO_DTTM
100000365                     55.63     31/07/2010
100000365      55.63     31/08/2010
100000524      104.32     31/08/2010
100000524      104.32     30/09/2010
100000524      104.32     31/10/2010
100000524      16.32     30/11/2010
100000524      16.32     31/12/2010
100000524      16.32     31/01/2011
100000524      16.32     28/02/2011But expected output should be:
ACCOUNT_ID     BALANCE_AMT     NEW_VALID_TO_DTTM
100000524                104.32     31/07/2010
100000524      104.32     31/08/2010
100000524      16.32     30/09/2010
100000524      16.32     31/10/2010
100000524      16.32     30/11/2010
100000524      16.32     31/12/2010
100000365                55.63     31/07/2010
100000365      55.63     31/08/2010One thing to note here is the September month which had a final value of 16.32 - it overlapped the previous entry of 104.32.

Similar Messages

  • How to break range of dates into different months in mm/yyyy format

    See the following eg:
    MaterialNo         Validfrom         ValidTo            RecordNo                    Value
    A100                01.01.2007        13.05.2007       1000                           1150/-
                             14.05.2007       24.08.2007        1001                           1550/-
    Now I want to break these dates into mm/yyyy format based on a condition. If the date(day) 15th lies in the range of dates
    then it should pick that Value.
    The output should be in this format.
    MaterialNo         Validfrom         ValidTo                    Date                         RecordNo                    Value
    A100                01.01.2007        13.05.2007            012007                            1000                           1150/-
                                                                                    022007                            1000                           1150/-
                                                                                    032007                            1000                           1150/-
                                                                                    042007                            1000                           1150/-
    A100               14.05.2007       24.08.2007            052007                               1001                           1550/-
                                                                                    062007                               1001                           1550/-
                                                                                    072007                               1001                           1550/-
                                                                                    082007                               1001                           1550/-

    Hi Shiva,
    In your Report Program, you can define the field of type sy-datum. And then fill the fields with the date. And then you can extract the rest of it manually by this small and simple lines of code. Once you have the date extracting logic then you can output the date in any manner according to your wish.
    data : lv_date  TYPE sy-datum.
    data : lv_month TYPE c LENGTH 2.
    data : lv_year  TYPE c LENGTH 4.
    data : lv_month_year TYPE c LENGTH 6.
    lv_date = sy-datum.
    lv_month = lv_date+4(2).
    lv_year  = lv_date+0(4).
    CONCATENATE lv_month lv_year INTO lv_month_year.
    Hope this helps.
    Thanks,
    Samantak.

  • How to split string in data table row in c#

    hi,
    Binding List data in to data table,. in that table i have description column. this column data move to data table in sql server
    here we facing problem for Description column
    the description column having data is
    <div class="ExternalClassE4908D8C25DF4D1586D0A010BFBC5A53">3400</div>
    now we want only 3400 values i am using this code
    ring Descrption = rows["Description"].ToString();
    if (! string.IsNullOrEmpty(Descrption))
    char[] splitString = new char[] { '<', '>' };
    string[] parts = Descrption.Split(splitString,
    StringSplitOptions.RemoveEmptyEntries);
    // string[] Dec_1 = Dec.Split(new char[] { '<' }, StringSplitOptions.RemoveEmptyEntries);
    rows["Description"] = parts[1].ToString();

    Hope the below helps as start..Modify 
    //Option1
    Descrption = Descrption.Substring(0, Descrption.LastIndexOf("<"));
    Descrption = Descrption.Substring(Descrption.LastIndexOf(">") + 1);
    Console.WriteLine(" {0} ", Descrption);
    //Option2
    Console.WriteLine(" {0} ", Regex.Replace(Descrption, "<[^>]*>", string.Empty));
    accordingly..

  • Split imported XML data into multiple text fields

    I should first describe my final project because it is very possible that I am going about this entirely wrong!
    I am trying to create an interactive PDF file which is the floor plan of our office, when you mouse over the office spaces it would popup the info for the person in that office, in fact when you click on the office space it would show additional info like computer MAC and jack numbers
    I placed the floor plan as a layer and them created a second layer with no fill/no stroke rectangles over the offices and made them buttons (office01, office02)
    I then made text fields with the info for the people, one for regular info and one for extra info (office01-data, office01-Xdata) I made these text fields buttons as well and had them "hidden until triggered"
    These info fields are all on top of one another, as in the are all the same size and in teh same location
    Then I went to the office buttons and created events "On Roll Over" "Show/Hide Buttons and Forms" and changed the visibility of the corresponding info button.
    This works like a charm!
    I hope I am clear up to this point.... my problem now is I would like to import this data both regular and extra from an excel spreadsheet or an XML file.
    That way when we get new staff or people move offices or whatever I can update the spreadsheet or XML file, rerun my InDesign file and create a new interactive PDF
    I have created the XML file
    <staffMap>
         <staff>
              <name>John Doe</name>
              <computerName<gfth56df</computerName>
              <phoneMAC>00:08:00:AB:CD:EF</phoneMAC>
         </staff>
    <staff>
              <name>John Smith</name>
              <computerName<gfth06cb</computerName>
              <phoneMAC>00:08:00:11:22:33</phoneMAC>
         </staff>
    </staffMap>
    Created a new InDesign document
    Imported the XML and placed it in a text field
    saved as a template and closed it
    Reopen and import the XML data again... and it brings it all into the text field... wonderful and useful but not what I need.
    Is it possible to import the XML data into separate test fields, or into some other separate field that I can make into a button and show/hide?
    I may end up just entering all the data directly into InDesign as I know this will work, it just does not seem like the right way to do it.
    Thanking you all in advance 

    I am still looking to get some help with this.
    I would love to know if it is not possible or any ideas at all

  • How to split a delimited string into rows

    Hi Everyone,
    I have a field in my EMPLOYEE table named "OLD_USER_IDS" which stores all the old system ID's that the employee was once assigned to. This field is comma separated like so: "USERID1,USERID2,USERID3". My question is: how can I write a SELECT query that splits each individual User ID into its own row?
    For example:
    EMP_ID USER_ID
    10 USERID1
    10 USERID2
    12 USERID3
    15 USERID4
    15 USERID5
    15 USERID6
    Thank You
    -Sam

    I think you should search this forum first for similar questions. I keep track of some interesting stuffs posted in this forum in a file, and from that
    WITH t AS  (SELECT 'USER1,USER2,USER3' str FROM DUAL
    select substr(str,
                        decode(level,
                               1,
                               1,
                               instr(str, ',', 1, level - 1) + 1),
                        decode(instr(str, ',', 1, level),
                               0,
                               length(str),
                               instr(str, ',', 1, level) -
                               decode(level,
                                      1,
                                      0,
                                      instr(str, ',', 1, level - 1)) - 1)) the_value
            from (select str from t)
          connect by level <=
                     length(str) - length(replace(str, ',')) + 1;

  • Splitting a column data into 4 different columns

    HI ALl,
    I have a column that bring the data friom the database like this :
    1.1.01 10.1 M10-08: This is the best deal ever
    I want to split that up into 4 columns ( prefrebely in RPD) . 1 column will be 1.1.01, 2nd column as just M or Q ( Depending upon the data) . 3rd Column as M10-08. 4th Column as the vervbage ( eg : this is the best deal ever).
    How would i do this. ANy help will be appreciated.
    thanks

    Hi user599926,
    The Business Model and Mapping Layer (logical layer) in the RPD is the right place for this kind of change. Here's what you do
    1) Import your physical table into the RPD
    2) Drag and drop that table into a BMM folder
    4) Right click on the logical table and select "New Object" -> "Logical Column..."
    5) Give the column a name
    6) Click on the Data Type tab
    7) Double click on the Logical Table Source (LTS) *Make sure "Show all logical sources" is checked
    8) Uncheck "Show mapped columns"
    9) Check "Show unmapped columns"
    10) you should now only see your new column.
    11) Click on the three dots "..." next to the name of the column.
    12) Use the SUBSTRING() function on your original field. E.g. SUBSTRING(FIELD1 FROM 1 FOR 6)
    13) Hit OK
    14) Hit OK
    15) Repeat steps 4-14 for 2nd ,3rd and 4th column. They will just have a different FROM and FOR number.
    Good luck!
    -Joe

  • Splitting the Idoc data into 2 diff files based on file content.

    Hi Experts,
                               Mine is a SAP - XI - File Scenerio. A perticular Idoc when triggered has a segment 4 with a Field KONDART. This Segment 4 is optional in nature and can appear n nos of times. Initially KONDART carried a value ABCD  and created a File called PLU, containing 14 fields.
       Now the value of KONDART can carry ABCD as wll as many other values.
    The current requirement is , if the Value of KONDART is ABCD , EFGH, etc etc , then it will create the PLU file as usual, but the moment the KONDART value is XYZ , then it will create the PLU as well as a new file called MRP, carrying only 4 fields .
        I can understand that I need to make a new DT, MT , MI . I can' make out, if i call it in Messege Mapping the PLU as well as MRP structure and map them according ly, I simply cant make out , hw to make it conditional based on the content of KONDART.
        Should I go for messege splittng, like in the second messege type , the Structure will get mapping data only if the KONDART Value is XYZ.
    Is my understanding OK.
    I think I can check this in Messege Mapping itself. calling 2 messege types and put a CREATEIF kind of logic for the KONDART = XYZ condition.
    Pls correct me / Comment .
    Regards,
    Arnab Mondal.

    Hi,
    If I have understood your problem correctly then the solutin can be like this..
    First of all create two separate mappings as well as Interface mappings (based on your different data types).
    In ID, just do the conditional "Interface Determination", so whenever your condition(s) will be true the respective interface mapping(s) will be triggered and offcourse create two CC respectively.
    Now when you do the "Receiver Determination" assing correct CC to corresponding interfaces.
    Regards,
    Sarvesh

  • Split the incoming data into multiple grouped output records

    I have three fields in the source, Student ID, Student name and Student Marks. I need to map the details in the destination, by grouping the data on the basis of marks obtained. Each time there's a new mark , the corresponding details of names and student
    ID is saved under the a new mark group that is created. how do i come about it when there are n number of new marks?

    for your scenario i used below xml as input,
    <ns0:Students xmlns:ns0="http://BTSTempProj.StudentDetailsIn">
      <Student>
        <StudentID>StudentID_0</StudentID>
        <StudnetName>StudnetName_0</StudnetName>
        <StudentMarks>10</StudentMarks>
      </Student>
      <Student>
        <StudentID>StudentID_0</StudentID>
        <StudnetName>StudnetName_0</StudnetName>
        <StudentMarks>20</StudentMarks>
      </Student>
      <Student>
        <StudentID>StudentID_0</StudentID>
        <StudnetName>StudnetName_0</StudnetName>
        <StudentMarks>10</StudentMarks>
      </Student> 
      <Student>
        <StudentID>StudentID_0</StudentID>
        <StudnetName>StudnetName_0</StudnetName>
        <StudentMarks>10</StudentMarks>
      </Student>
      <Student>
        <StudentID>StudentID_0</StudentID>
        <StudnetName>StudnetName_0</StudnetName>
        <StudentMarks>20</StudentMarks>
      </Student>
      <Student>
        <StudentID>StudentID_0</StudentID>
        <StudnetName>StudnetName_0</StudnetName>
        <StudentMarks>30</StudentMarks>
      </Student>   
    </ns0:Students>
    and here is the output, hope this is what you are looking for. 
    <ns0:Students xmlns:ns0="http://BTSTempProj.StudentDetailsOut">
    <StudentMarks>10</StudentMarks>
    <Student>
    <StudentName>StudnetName_0</StudentName>
    <StudentID>StudentID_0</StudentID>
    <StudentName>StudnetName_0</StudentName>
    <StudentID>StudentID_0</StudentID>
    <StudentName>StudnetName_0</StudentName>
    <StudentID>StudentID_0</StudentID>
    </Student>
    <StudentMarks>20</StudentMarks>
    <Student>
    <StudentName>StudnetName_0</StudentName>
    <StudentID>StudentID_0</StudentID>
    <StudentName>StudnetName_0</StudentName>
    <StudentID>StudentID_0</StudentID>
    </Student>
    <StudentMarks>30</StudentMarks>
    <Student>
    <StudentName>StudnetName_0</StudentName>
    <StudentID>StudentID_0</StudentID>
    </Student>
    </ns0:Students>
    Please find the below xslt which you can use, it is basically based on the Muenchian grouping suggested by Ashwin
    <?xml version="1.0" encoding="UTF-16"?>
    <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt" xmlns:var="http://schemas.microsoft.com/BizTalk/2003/var" exclude-result-prefixes="msxsl var s0" version="1.0"
    xmlns:ns0="http://BTSTempProj.StudentDetailsOut" xmlns:s0="http://BTSTempProj.StudentDetailsIn">
      <xsl:output omit-xml-declaration="yes" method="xml" version="1.0" />
      <xsl:template match="/">
        <xsl:apply-templates select="/s0:Students" />
      </xsl:template>
      <xsl:key name="groups" match="Student" use="StudentMarks"/>
      <xsl:template match="/s0:Students">
        <ns0:Students>
          <xsl:for-each select="Student[generate-id(.)=generate-id(key('groups',StudentMarks))]">
            <xsl:sort select="StudentMarks" order="ascending"/>
            <StudentMarks>
              <xsl:value-of select="StudentMarks/text()"/>
            </StudentMarks>    
            <Student>    
              <xsl:for-each select="key('groups',StudentMarks)">
                <StudentName>
                  <xsl:value-of select="StudnetName/text()"/>
                </StudentName>
                <StudentID>
                  <xsl:value-of select="StudentID/text()"/>
                </StudentID> 
                </xsl:for-each>
            </Student>
          </xsl:for-each>        
        </ns0:Students>
      </xsl:template>
    </xsl:stylesheet>
    Regards, Amit More

  • Converting column data into rows in oracle 10g

    sample data:
    PATID NA2     NA3     NA4     
    1     3     4     5     
    1     34     45     56     
    1     134     245     356     
    2     134     245     356     
    2     334     275     56     
    2     4     275     56     
    2     4     5     56     
    how to display the above data like
    PATID NA2 NA3 NA4
    1 ID1 ID2 ID3 ID4 ID1 ID2 ID3 ID4 ID1 ID2 ID3 ID4
    3 34 134 4 45 245 5 56 356
    2 134 134 4 4 245 275 275 5 356 56 56 56

    Many examples are here:
    http://www.oracle-base.com/articles/10g/StringAggregationTechniques.php
    (and you can do a search on this forum as well to find more)
    edit
    Your sample data is not very clear, by the way.
    Please post a CREATE TABLE and some INSERT statements, just enough to put up the testcase.
    Use the tag before and after posting examples, so formatting will be maintained.
    See the [FAQ|http://forums.oracle.com/forums/help.jspa] for more information regarding tags (scroll a bit down)...
    Edited by: hoek on Jan 26, 2010 5:23 PM                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   

  • Split flat file column data into multiple columns using ssis

    Hi All, I need one help in SSIS.
    I have a source file with column1, I want to split the column1 data into
    multiple columns when there is a semicolon(';') and there is no specific
    length between each semicolon,let say..
    Column1:
    John;Sam;Greg;David
    And at destination we have 4 columns let say D1,D2,D3,D4
    I want to map
    John -> D1
    Sam->D2
    Greg->D3
    David->D4
    Please I need it ASAP
    Thanks in Advance,
    RH
    sql

    Imports System
    Imports System.Data
    Imports System.Math
    Imports Microsoft.SqlServer.Dts.Pipeline.Wrapper
    Imports Microsoft.SqlServer.Dts.Runtime.Wrapper
    Imports System.IO
    Public Class ScriptMain
    Inherits UserComponent
    Private textReader As StreamReader
    Private exportedAddressFile As String
    Public Overrides Sub AcquireConnections(ByVal Transaction As Object)
    Dim connMgr As IDTSConnectionManager90 = _
    Me.Connections.Connection
    exportedAddressFile = _
    CType(connMgr.AcquireConnection(Nothing), String)
    End Sub
    Public Overrides Sub PreExecute()
    MyBase.PreExecute()
    textReader = New StreamReader(exportedAddressFile)
    End Sub
    Public Overrides Sub CreateNewOutputRows()
    Dim nextLine As String
    Dim columns As String()
    Dim cols As String()
    Dim delimiters As Char()
    delimiters = ",".ToCharArray
    nextLine = textReader.ReadLine
    Do While nextLine IsNot Nothing
    columns = nextLine.Split(delimiters)
    With Output0Buffer
    cols = columns(1).Split(";".ToCharArray)
    .AddRow()
    .ID = Convert.ToInt32(columns(0))
    If cols.GetUpperBound(0) >= 0 Then
    .Col1 = cols(0)
    End If
    If cols.GetUpperBound(0) >= 1 Then
    .Col2 = cols(1)
    End If
    If cols.GetUpperBound(0) >= 2 Then
    .Col3 = cols(2)
    End If
    If cols.GetUpperBound(0) >= 3 Then
    .Col4 = cols(3)
    End If
    End With
    nextLine = textReader.ReadLine
    Loop
    End Sub
    Public Overrides Sub PostExecute()
    MyBase.PostExecute()
    textReader.Close()
    End Sub
    End Class
    Put this code in ur script component. Before that add 5 columns to the script component output and name them as ID, col1, co2..,col4. ID is of data type int. Create a flat file destination and name it as connection and point it to the flat file as the source.
    Im not sure whats the delimiter in ur flat file between the 2 columns. I have use a comma change it accordingly.
    This is the output I get:
    ID Col1
    Col2 Col3
    Col4
    1 john
    Greg David
    Sam
    2 tom
    tony NULL
    NULL
    3 harry
    NULL NULL
    NULL

  • One Column into Rows

    I have data in a table that looks like below:
    ColumnA               ColumnB
    123                    abc|cde|fgr
    345                    def|ght|sew
    890                    deq|nmk|lop|lip|fre|dwsThere is no limit on how many values you can have in ColumnB and they are pipe delimited.
    I need to split this one column into rows as:
    ColumnA               ColumnB
    123                    abc
    123                    cde
    123                    fgr
    345                    def
    345                    ght
    890                    fre
    890                    dwsThanks in advance!

    with sample_data as (
                         select 123 columna,'abc|cde|fgr' columnb from dual union all
                         select 345,'def|ght|sew' from dual union all
                         select 890,'deq|nmk|lop|lip|fre|dws' from dual
    select  columna,
            regexp_substr(columnb,'[^|]+',1,column_value) columnb
      from  sample_data,
            table(
                  cast(
                       multiset(
                                select  level
                                  from  dual
                                  connect by level <= length(regexp_replace(columnb || '|','[^|]'))
                       as sys.OdciNumberList
      order by columna,
               column_value
       COLUMNA COLUMNB
           123 abc
           123 cde
           123 fgr
           345 def
           345 ght
           345 sew
           890 deq
           890 nmk
           890 lop
           890 lip
           890 fre
       COLUMNA COLUMNB
           890 dws
    12 rows selected.
    SQL> SY.

  • SAX parser splits up character data; I expected Ign. whitesp

    Im am working on a XML parser for loading data from some back
    end systems into an Oracle 8i database. I am using the SAX
    parser for this purpose. After doing some tests with larger
    amounts of XML data (> 1M), I found some unexpected behaviour.
    The parser sometimes splits up character data into two chunks of
    data. The XML looks as follows:
    <TAGNAME> this is the character data </TAGNAME>
    The parser raises the following events:
    1 startElement name = "TAGNAME"
    2 characters chbuf = " "
    3 characters chbuf = "this is the character data "
    4 endElement name = "TAGNAME"
    I expected an ignorableWhitespace event at step 2. The XML
    document contains repetitive tagnames. The strange thing about
    the parse process is that the parser splits up the character
    data only sometimes, and I can't determine any kind of logica
    for this behaviour. Most occurrences of exactly the same tagname
    and character data are parsed correctly (that is, as I
    expected).
    Am I dealing with correct behaviour here, or is it a bug??
    Rolf.
    null

    Oracle XML Team wrote:
    : Rolf van Deursen (guest) wrote:
    : : Im am working on a XML parser for loading data from some
    back
    : : end systems into an Oracle 8i database. I am using the SAX
    : : parser for this purpose. After doing some tests with larger
    : : amounts of XML data (> 1M), I found some unexpected
    behaviour.
    : : The parser sometimes splits up character data into two
    chunks
    : of
    : : data. The XML looks as follows:
    : : <TAGNAME> this is the character data </TAGNAME>
    : : The parser raises the following events:
    : : 1 startElement name = "TAGNAME"
    : : 2 characters chbuf = " "
    : : 3 characters chbuf = "this is the character data "
    : : 4 endElement name = "TAGNAME"
    : : I expected an ignorableWhitespace event at step 2. The XML
    : : document contains repetitive tagnames. The strange thing
    about
    : : the parse process is that the parser splits up the character
    : : data only sometimes, and I can't determine any kind of
    logica
    : : for this behaviour. Most occurrences of exactly the same
    : tagname
    : : and character data are parsed correctly (that is, as I
    : : expected).
    : : Am I dealing with correct behaviour here, or is it a bug??
    : : Rolf.
    : The behavior is expected and correct. Could you elaborate on
    why
    : you would expect the parser to treat the whitespace signalled
    in
    : step 2 as ignorable?
    : Oracle XML Team
    : http://technet.oracle.com
    : Oracle Technology Network
    Thank you for your quick response.
    In my test XML, there are about 27500 tags containing character
    data. All character data starts with a whitespace character.
    After parsing the xml, the whitespace of only 5 (!) tags is
    treated as a seperate character event (so two character events
    are raised in succession). The remaining tags all raise only ONE
    character event for the entire character data. I can't explain
    the difference in treatment.
    null

  • Splitting comma seperated column data into multiple rows

    Hi Gurus,
    Please help me for solving below scenario. I have multiple value in single column with comma seperated values and my requirement is load that data into multiple rows.
    Below is the example:
    Source Data:
    Product         Size                                 Stock
    ABC              X,XL,XXL,M,L,S                 1,2,3,4,5,6
    Target Data:
    Product         Size                                 Stock
    ABC              X                                     1
    ABC              XL                                   2
    ABC              XXL                                 3
    ABC              M                                    4
    ABC              L                                      5
    ABC             S                                        6
    Which transformation we need to use for getting this output?
    Thanks in advance !

    Hello,
    Do you need to do this tranformation through OWB mapping only? And can you please tell what type of source you are using? Is it a flat file or a table?
    Thanks

  • How to spool data into multiple Excel sheet if result is more then 65k rows

    Hi all,
    Wann spool data into multiple excel sheet bocz my resultant no of rows are more then 65k.
    Thanks to all in advance.....

    many choices
    1) migrate to a newer version of Excel
    2) split the files after spooling
    for instance with split
    split -l65000 file.txtor with perl, java, vb or what-so-ever
    3) do more than one report by using rownum
    spool f1
    select empno,ename  from (select rownum r,empno,ename from emp order by empno) where r<6 ;
    spool off
    spool f2
    select empno,ename  from (select * from (select rownum r,empno,ename from emp order by empno) where r<11) where r>5 ;
    spool off
    spool f3
    select empno,ename  from (select rownum r,empno,ename from emp order by empno) where r>10 ;
    spool off

  • How to split columns into rows

    Hi All,
    Below is my table structure:=
    SQL> create table split(id number,value varchar2(200));
    Table created.
    SQL> insert into split values(1,'X,Y,Z');
    1 row created.
    SQL> insert into split values(2,'A,B,C');
    1 row created.
    SQL> commit;
    Commit complete.
    Expected Output
    ID Value
    1 X
    1 Y
    1 Z
    2 A
    2 B
    3 C
    I know the feature of converting rows into columns by listagg in Oracle 11g, but is there any feature to convert rows into columns based on a delemiter..."," in my case.
    Please help....
    Thanks
    Arijit

    >
    is there any feature to convert rows into columns based on a delemiter
    >
    Here is one way
    VAR csv VARCHAR2(100)EXEC :csv := 'abc,de,fg,hij,klmn,o,pq,rst,uvw,xyz';
    The query:
    WITH data AS( SELECT SUBSTR(csv, INSTR(csv,',',1,LEVEL)+1,                     INSTR(csv,',',1,LEVEL+1) - INSTR(csv,',',1,LEVEL)-1 ) token    FROM ( SELECT ','||:csv||',' csv FROM SYS.DUAL ) CONNECT BY LEVEL < LENGTH(:csv)-LENGTH(REPLACE(:csv,',',''))+2 )SELECT token  FROM data;See http://projectwownow.blogspot.com/2010/02/oracle-convert-csv-string-into-rows.html

Maybe you are looking for

  • I have recently updated my iphone 4 and now i can no longer sign in to itunes or the app store.

    i need to update my apps but it wont let me log in. my email address and password are correct as i can log into itunes through the computer it just wont let me through my phone? also it keeps asking me to enter my outlook passoword and telling me it

  • I can't seem to upload cover photos to FB from iPhoto, any suggestions on how to fix it?

    I use iPhoto '11. I have Facebook connected to my iPhoto library. I am able to upload photos to new albums and change my profile photographs. However, I am not able to change my cover photos anymore. I was able to select a photo, go to "share", selec

  • Contract and scheduling aggremnt

    hi i am sunil basically from BI consultant. when we go tcode  ME33K , we need give aggrement no? how can i decide is it for contract or scheduling any other filed will decide ? field provide me some information Purchasing (MM-PUR) A longer-term arran

  • Aperture very slow loading the next image...

    OK, I've trawled the forums but I can't find a specific answer. Firstly, I'm using a low spec iMac (2007 2.4GHz C2D with 4GB RAM, Radeon HD 2600 - 256MB VRAM on 10.8.2) but I'm not convinced this is the issue. When I navigate through photos (Sony Alp

  • Missing setup assistant

    I bought a time capsule.  I've hooked it to the internet WAN to modem via ethernet.  I've hooked it to my macbook pro via ethernet.  I've hooked it to my printer via USB.  I turned the time capsule on.  I opened airport utility which made me make up