Need help on case statements to validate records

Hi Experts ,
My table :
seq_num
col2
col3
col4
1
A
12345
P
2
B
1
123%23
3
C
1
23AB
4
D
1
20131001
5
E
1
6
A
13245
Q
7
B
1
12345
8
C
2
1234*AB
9
D
5
20140112
10
E
1
00020
my output
seq_num
col2
col3
col4
Status
Reason
1
A
12345
P
Valid
2
B
1
123%23
invalid
Special Character for col4
3
C
1
23AB
Valid
4
D
1
20131001
Valid
5
E
1
invalid
null for col4
6
A
13245
Q
invalid
Invalid character col4 || invalid number for col3
7
B
1
12345
Valid
8
C
2
1234*AB
Invalid
Special Character col4 ||invalid col3
9
D
5
20140112
invalid
Future dates col4 ||invalid col3
10
E
1
00020
Valid
Sql :
with t as
( select 1 as seq_num,'A' as col2 ,12345 as col3 ,'P' as col4 from dual
union all
select 2 ,'B',1,'123%23' from dual
union all
select 3,'C',1,'23AB' from dual
union all
select 4,'D',1,'21-02-2013' from dual
union all
select 5,'E',1,null from dual
union all
select 6,'A,13245,'Q' from dual
union all
select 7,'B',1,12345 from dual
union all
select 8,'C',2,'1234*AB' from dual
union all
select 9,'D',5,'25-01-2014' from dual
union all
select 10,'E',1,20 from dual
I am applying rules on col3 and col4 for each records row-wise.
I need case statements to populate status and reason columns after applying below rules
Rules
Col3 :
For A record ,it should be 12345 always .
For B,C,D,E , record should be always 1
col4
For A record , it should be either P or R
No null values for all A, B,C,D,E records
for B record , it dont contain special charecters
for C RECORD ,  it dont contain special charecters
for D record ,it should not contain future dates (dates are in yyyymmdd format and  less than  sysdates are valid )
I have other columns as well ,as i not included here
.It would be great if you Could  help on case statements
Thanks and Regards,
Sumanth

I've adjusted Gregs nice example a bit. This should work:
with w_base as (
      select seq_num, col2, col3, col4,
             case when (col2 = 'A'                 AND col3 = 12345 )
                    OR (col2 in ('B','C','D','E')  AND col3 = 1)
                        then '' else '||invalid col3' end ||
             case when (col2 = 'A'        AND col4 not IN ( 'P', 'R' ) )
                        then '||invalid col4' else '' end ||
             case when (col2 IN ( 'B', 'C' )   AND col4 != translate(col4, 'a!@#$%^*()','a') )
                        then '||special character for col4' else '' end ||
             case when (col2 = 'D'        AND col4 >= to_char(sysdate,'yyyymmdd') )
                        then '||future dates col4' else '' end
               reason
      from ( select 1 as seq_num, 'A' as col2, 12345 as col3, 'P' as col4  from dual union all
             select 2,            'B',         1,             '123%23'     from dual union all
             select 3,            'C',         1,             '23AB'       from dual union all
             select 4,            'D',         1,             '20130212'   from dual union all
             select 5,            'E',         1,             null         from dual union all
             select 6,            'A',         13245,         'Q'          from dual union all
             select 7,            'B',         1,             '12345'      from dual union all
             select 8,            'C',         2,             '1234*AB'    from dual union all
             select 9,            'D',         5,             '20140125'   from dual union all
             select 10,           'E',         1,             '20'         from dual )
Select seq_num, col2, col3, col4,
       case when reason is null then 'Valid' else 'Invalid' end status,
       substr(reason, 3 ) reason
from w_base
It returns
SEQ_NUM
COL2
COL3
COL4
STATUS
REASON
1
A
12345
P
Valid
2
B
1
123%23
Invalid
special character for col4
3
C
1
23AB
Valid
4
D
1
20130212
Valid
5
E
1
Valid
6
A
13245
Q
Invalid
invalid col3||invalid col4
7
B
1
12345
Valid
8
C
2
1234*AB
Invalid
invalid col3||special character for col4
9
D
5
20140125
Invalid
invalid col3||future dates col4
10
E
1
20
Valid
edited some bugs :) now it should be fine! really

Similar Messages

  • Need help in CASE statement

    HI ,
    My query gives output like this
    Cno BO DT countkey
    RF036     I     1          156
    RF036     I     8          445
    RF036     O     3          1320
    RF036     O     D          2547
    I need output like
    Cno DM CC MC BC
    RF036 156 445 1320 2547
    Thanks,
    Lony

    Based on your data...
    WITH D AS (
       SELECT 'RF036' AS CNO, 'I' AS BO, '1' AS DT, 156  AS COUNTKEY FROM DUAL
       UNION ALL
       SELECT 'RF036'       , 'I'      , '8'      , 445              FROM DUAL
       UNION ALL
       SELECT 'RF036'       , 'O'      , '3'      , 1320             FROM DUAL
       UNION ALL   
       SELECT 'RF036'       , 'O'      , 'D'      , 2547             FROM DUAL  
    SELECT CNO, MAX(DM) AS DM, MAX(CC) AS CC, MAX(MC) AS MC, MAX(BC) AS BC
    FROM (
       SELECT CNO, CASE WHEN BO = 'I' AND DT = '1' THEN COUNTKEY ELSE NULL END DM,
                   CASE WHEN BO = 'I' AND DT = '8' THEN COUNTKEY ELSE NULL END CC,
                   CASE WHEN BO = 'O' AND DT = '3' THEN COUNTKEY ELSE NULL END MC,
                   CASE WHEN BO = 'O' AND DT = 'D' THEN COUNTKEY ELSE NULL END BC
       FROM D
    GROUP BY CNO

  • Need Help on Case Statement

    Hi all
    I'm stuck on scenario. I have query something like this
    Select  HIRE_DATE,
                ENAME,
            ( case when EMP_NO=10 then
              case when exist
                   select ENAME from
                    EMP_DTL
                   where EMP_DTL.EMP_NO=EMP_MST.EMP_NO
              ) end case
             case when EMP_NO in (10,20,30,40) then
               case when exist
              select ENAME from
                    EMP_DTL
                   where EMP_DTL.EMP_NO=EMP_MST.EMP_NO)
              As TARGET_CODE)
    FROM EMP_MST;
    now I'm trying to return ENAME (TARGET_CODE)  that I use in my Case but I'm getting error. I don't know why. Please guide me.
    Regards
    Shu

    I don't understand your query at all, so I'm just taking a guess here:
    SQL> select m.emp_no
      2        ,m.hire_date
      3        ,m.e_name
      4        ,d.pl_code
      5  from   emp_mst m
      6  left   join
      7              (select emp_no, pl_code
      8               from   emp_dtl
      9               where  (
    10                          (emp_no = 10 and pl_code = 'BB')
    11                       or (emp_no in (20,30) and pl_code = 'LOB')
    12                      )
    13              ) d
    14              on (d.emp_no = m.emp_no)
    15  ;
    EMP_NO HIRE_DATE    E_NAME   PL_CODE
        10 12-JAN-2013  ROB      BB
        20 13-JAN-2013  ROBERT   LOB
        30 14-JAN-2013  JILL
    EDIT: changed the query.

  • Need Help ASAP  my State tax form is in a PDF file and the attachment in my email says Please wait

    Need Help ASAP  my State tax form is in a PDF file and the attachment in my email says Please wait...
    I tried downloading updates like it said to but it still will not display the document.  How do I print the PDF file ASAP

    Can you give us a LOT more info?
    What email client? What version of Reader (I can only assume you even have Reader at this point)?
    Please wait? I'm sure it says more than that, right?
    Have you tried simply saving the PDF (it IS a PDF correct?) to your desktop and opening it from there?
    Did you get this form from the IRS or did it come from somewhere else? If the IRS again, what version of Reader?
    Help us help you.

  • I need help finding cases for the ipod touch thrid gen help.

    i need help finding case for ipod touch thrid gen help.

    - Try another cable.
    - Try another USB port
    - Inspect the dock connector on the iPod for bent or missing contacts, foreign material, corroded contacts, broken, missing or cracked plastic.
    - Try on another computer. Just backup a couple of times. Do not sync.

  • Need help for sql statement

    Hi,
    Need help to write sql statement.
    create table t_dt ( dt_start date, dt_end date, amount number);
    insert into t_dt values('1-Jan-10','10-Feb-10',12);
    insert into t_dt values('11-Feb-10','10-Mar-10',10);
    insert into t_dt values('11-Mar-10','20-Apr-10',8);
    insert into t_dt values('21-Apr-10','28-Jun-10',10);
    insert into t_dt values('29-Jun-10','20-Sep-10',10);
    insert into t_dt values('21-Sep-10','10-Oct-10',10);
    insert into t_dt values('11-Oct-10','31-Dec-10',8);
    insert into t_dt values('1-Jan-11','10-Feb-11',8);
    insert into t_dt values('11-Feb-11','10-Mar-11',7);
    insert into t_dt values('11-Mar-11','20-Apr-11',6);
    insert into t_dt values('21-Apr-11','28-Jun-11',6);
    insert into t_dt values('29-Jun-11','20-Sep-11',6);
    insert into t_dt values('21-Sep-11','10-Oct-11',4);
    insert into t_dt values('11-Oct-11','31-Dec-11',8);
    Result should be like below..
    dt_start     dt_end     Amount
    1-Jan-10     10-Feb-10     12
    11-Feb-10     10-Mar-10     10
    11-Mar-10     20-Apr-10     8
    21-Apr-10     10-Oct-10     10
    11-Oct-10     10-Feb-11     8
    11-Feb-11     10-Mar-11     7
    11-Mar-11     20-Sep-11     6
    21-Sep-11     10-Oct-11     4
    11-Oct-11     31-Dec-11     8
    Just to explain the example, take a row with start date as 21-Apr-10 in the above insert statements, since it has the same amount for next two rows (i.e. with start date '29-Jun-10' and '21-Sep-10') these 3 rows should be converted to represent only 1 row in the result and the start date and end date should be changed per the result shown above.
    Thanks.

    Hello
    I think this gives yuo what you need....
    SELECT
        MIN(dt_start),
        MAX(dt_end),
        amount
    FROM
        (   SELECT
                dt_start,
                dt_end,
                MAX(marker) OVER(ORDER BY dt_start) marker,
                amount
            FROM
                    Select
                        dt_start,
                        dt_end,
                        amount,
                        CASE
                            WHEN LAG(amount) OVER(ORDER BY dt_start) <> amount THEN
                                ROW_NUMBER() OVER(ORDER BY dt_start)
                        END marker
                    from t_dt
    GROUP BY
         amount,
         marker
    order by     
         MIN(dt_start)
    MIN(DT_START)        MAX(DT_END)              AMOUNT
    01-JAN-2010 00:00:00 10-FEB-2010 00:00:00         12
    11-FEB-2010 00:00:00 10-MAR-2010 00:00:00         10
    11-MAR-2010 00:00:00 20-APR-2010 00:00:00          8
    21-APR-2010 00:00:00 10-OCT-2010 00:00:00         10
    11-OCT-2010 00:00:00 10-FEB-2011 00:00:00          8
    11-FEB-2011 00:00:00 10-MAR-2011 00:00:00          7
    11-MAR-2011 00:00:00 20-SEP-2011 00:00:00          6
    21-SEP-2011 00:00:00 10-OCT-2011 00:00:00          4
    11-OCT-2011 00:00:00 31-DEC-2011 00:00:00          8
    9 rows selected.HTH
    David
    Edited by: Bravid on Feb 23, 2012 12:08 PM
    Beaten to it by Frank! :-)

  • Need help on select statement...

    Hi,
    I need to fetch from vbfa table those records where vbeln starts with '0800'.
    my select statement given below gives a syntax error..pl help.
    SELECT * FROM vbfa WHERE vbeln(4) = '0800'.
    vbeln(4) is not accepted and i get the message ' field vbeln(4) is unknown' ...what to do?
    thks

    Use LIKE. Please see F1 on this.
    Rob
    (changed CP to LIKE)
    Edited by: Rob Burbank on Sep 15, 2008 11:18 AM

  • Need help with case structures- please help :)

    Hey all.
    I'm currently trying to program a infrared furnace. I'm setting a temperature, subtracted my set temperature from the actual temperature (thermocouple hooked up to SCB-68), and voltage is being sent to the controller of the furnace accordingly. However, I need to hold the set temperature for a certain amount of time. I need help programming this: when the VI reads the set temperature from the thermocouple, it results in a timer running down. When the timer runs down to 0, the While Loop ends. I'm thinking case structures is most appropriate, but if you have a better suggestion, please let me know.
    Thanks

    You should probably implement a state machine.
    The state machine would keep track of the temperature and making ajustments on a timely basis.
    There is a template of a state machine is you select under the File menu > New > From Template.
    You can also look under Help > Find Example > and do a search for state machine.
    There are lots of state machine examples on this forum, some of which may be quite useful.
    RayR

  • Need Help On SQL Statement

    I am using Sybase as my back end database. I need help on my SQL statement regarding datetime. The datetime is store as a 9 digit integer in the database (...I believe it is a Decimal(30,6) format, let me know if I am wrong).
    If I do this, "select * from mytable;" It works out fine (except I don't know what the date means e.g. 998919534)
    If I do this, "select * from mytable where datetime_col < '9/5/2002' ; I got an error. I even tried '9/5/02 11:00 000 am' but it didn't help.
    How do I specify a date or datetime in my query?
    Thanks in advance.

    I execute the sql statement
    select * from mytable where datetim_col < convert(datetime, '3/4/2002', 101) ;
    I got mix result. I got an error message "cannot convert 10375584 to a date.
    Yet, he statistics window of the I-sql says
    "estimated 493 rows in query (I/O estimate 87)
    PLan> mytable (seq)"
    It looks like I my the SQL statement is correct and then the system can't display it in the Data window.
    Any thought ?

  • Need help regarding SELECT statement

    Hello, first time here but need help badly.
    I been using SQL syntax with another SQL server by the following statement doesnt seem to work in Oracle database.
    SELECT firstname+" "+lastname AS fullname FROM customers
    basicially, I just want to display date from two column as one column.
    Thanks

    Oracle has pipe sign for concate
    SELECT firstname||' '||lastname AS fullname
    FROM customers;Khurram

  • Need help on SQL Statement for UDF

    Hi,
    as I am not so familiar with SQL statements on currently selected values, I urgently need help.
    The scenario looks as follows:
    I have defined two UDFs named Subgroup1 and Subgroup2 which represent the subgroups dependent on my article groups. So for example: When the user selects article group "pianos", he only sees the specific subgroups like "new pianos" and "used pianos" in field "Subgroup1". After he has selected one of these specific values, he sees only the specific sub-subgroups in field "Subgroup2", like "used grand pianos".
    I have defined UDTs for both UDFs. The UDT for field "Subgroup1" has a UDF called "ArticleGroup" which represents the relation to the article group codes. The UDT for field "Subgroup2" has a UDF called "Subgroup1" which represents the relation to the subgroups one level higher.
    The SQL statement for the formatted search in field "Subgroup1" looks as follows:
    SELECT T0.[Name] FROM [dbo].[@B_SUBGROUP1]  T0 WHERE T0.[U_ArticleGroup]  = (SELECT $[OITM.ItmsGrpCod])
    It works fine.
    However, I cannot find the right statement for the formatted search in field "Subgroup2".
    Unfortunately this does NOT WORK:
    SELECT T0.[Name] FROM [dbo].[@B_SUBGROUP2]  T0 WHERE T0.[U_Subgroup1]  = (SELECT $[OITM.U_Subgroup1])
    I tried a lot of others that didn't work either.
    Then I tried the following one:
    SELECT T0.[Name] FROM [dbo].[@B_SUBGROUP2]  T0 WHERE T0.[U_Subgroup1] = (SELECT T1.[Code] FROM [dbo].[@B_SUBGROUP1] T1 WHERE T1.[U_ArticleGroup] = (SELECT $[OITM.ItmsGrpCod]))
    Unfortunately that only works as long as there is only one specific subgroup1 for the selected article group.
    I would be sooooo happy if there is anyone who can tell me the correct statement for my second UDF!
    Thanks so much in advance!!!!
    Edited by: Corinna Hochheim on Jan 18, 2010 10:16 PM
    Please ignore the "http://" in the above statements - it is certainly not part of my SQL.
    Please also ignore the strikes.

    Hello Dear,
    Use the below queries to get the values:
    Item Sub Group on the basis of Item Group
    SELECT T0.[Name] FROM [dbo].[@SUBGROUP]  T0 WHERE T0.[U_GroupCod] =$[OITM.ItmsGrpCod]
    Item Sub Group 1 on the basis of item sub group
    SELECT T0.[Name] FROM [dbo].[@SUBGROUP1]  T0 WHERE T0.[U_SubGrpCod]=(SELECT T0.[Code] FROM [dbo].[@SUBGROUP]  T0 WHERE T0.[Name] =$[OITM.U_ItmsSubgrp])
    Sub group 2 on the basis of sub group 1
    SELECT T0.[Name] FROM [dbo].[@SUBGROUP2]  T0 WHERE T0.[U_SubGrpCod1]=(SELECT T0.[Code] FROM [dbo].[@SUBGROUP1]  T0 WHERE T0.[Name] =$[OITM.U_ItmsSubgrp1])
    this will help you.
    regards,
    Neetu

  • Still need help with case sensitive strings

    Hello guy! Sorry to trouble you with the same problem again,
    but i still need help!
    "I am trying to create a scrypt that will compare a String
    with an editable text that the user should type to match that
    String. I was able to do that, but the problem is that is not case
    sensitive, even with the adobe help telling me that strings are
    case sensitive. Do you guys know how to make that comparison match
    only if all the field has the right upper and lower case letters?
    on exitframe
    if field "t:texto1" = "Residencial Serra Verde"then
    go to next
    end if
    end
    |----> thats the one Im using!"
    There were 2 replys but both of them didnt work, and the
    second one even made the director crash, corrupting even previously
    files that had nothing to do with the initial problem..
    first solution given --
    If you put each item that you are comparing into a list, it
    magically
    makes it case sensitive. Just put list brackets around each
    item.
    on exitframe
    if [field "t:texto1"] = ["Residencial Serra Verde"] then
    go to next
    end if
    end
    Second solution given--
    The = operator is not case-sensitive when used on strings,
    but the < and > operators are case-sensitive.
    So another way to do this is to check if the string is
    neither greater than nor less than the target string:
    vExpected = "Residencial Serra Verde"
    vInput = field "t:texto 1"
    if vExpected < vInput then
    -- ignore
    else if vExpected > vInput then
    -- ignore
    else
    -- vExpected is a case-sensitive match for vInput
    go next
    end if
    So any new solutions??
    Thanks in advance!!
    joao rsm

    The first solution does in fact work and is probably the most
    efficient way
    of doing it. You can verify that it works by starting with a
    new director
    movie and adding a field named "t:texto1" into the cast with
    the text
    "Residencial Serra Verde" in the field. Next type the
    following command in
    the message window and press Enter
    put [field "t:texto1"] = ["Residencial Serra Verde"]
    You will see it return 1 which means True. Next, make the R
    in the field
    lower case and execute the command in the message window, it
    will return 0
    (true).
    Now that you know this works, you need to dig deeper in your
    code to find
    what the problem is. Any more info you can supply?

  • Need help with case when

    Create global temporary table d_desc1
    ( discrep_id NUMBER
    ,desc_1 VARCHAR2(110)
    Create global temporary table d_desc2
    ( discrep_id NUMBER
    ,desc_2 VARCHAR2(110)
    INSERT INTO
    d_desc1
    SELECT distinct
    d.discrep_id
    ,NVL(dd.discrep_desc,'') as desc_1
    FROM
    discrep_ d
    ,discrep_desc_ dd
    WHERE
    d.discrep_id = dd.discrep_id
    AND dd.DISCREP_DESC_SEQUENCE = 1
    AND dd.html_ind <> 'Y'
    AND dd.discrep_desc <> '<br>'
    AND dd.discrep_desc NOT LIKE '<font Class=%'
    AND d.discrep_id in (915606255, 879868258, 826503010, 824812060)
    AND d.discrep_date >= '01-jan-2009'
    AND d.discrep_date <= to_date('31-jan-2009')+1;
    INSERT INTO
    d_desc2
    SELECT distinct
    d.discrep_id
    ,case when d1.discrep_id = dd.discrep_id then d1.desc_1 || '' || dd.discrep_desc
    when d1.discrep_id <> dd.discrep_id then dd.discrep_desc as desc_2
    FROM
    discrep_ d
    ,discrep_desc_ dd
    WHERE
    d.discrep_id = dd.discrep_id
    AND dd.DISCREP_DESC_SEQUENCE = 2
    AND dd.html_ind <> 'Y'
    AND dd.discrep_desc <> '<br>'
    AND dd.discrep_desc NOT LIKE '<font Class=%'
    AND d.discrep_id IN (915606255, 879868258, 826503010, 824812060)
    AND d.discrep_date >= '01-jan-2009'
    AND d.discrep_date <= to_date('31-jan-2009')+1;
    CREATE TABLE DISCREP_
    (     DISCREP_ID NUMBER,
         DISCREP_DATE DATE, )
    CREATE TABLE DISCREP_DESC_
    (     DISCREP_ID NUMBER,
         DISCREP_DESC_SEQUENCE NUMBER ,
         DISCREP_DESC_DATE DATE ,
         DISCREP_DESC NVARCHAR2(100) ,
         HTML_IND CHAR(1 BYTE) ,
         PERSON_ID NUMBER
    discrep_desc for a given discrep_id can have several discrep_desc_sequence for the same date. I need to put them on one line and be able to query it by discrep_id to update a column in another table with the data. I don't plan to use global temporary tables in my procedure for this but to test it for now I am using them. the case statement is giving me d1.desc_1 || '' || dd.discrep_desc and dd.discrep_desc for a given discrep_id instead of just dd.discrep_desc if the discrep_id isn't in d_desc1 and d1.desc_1 || '' || dd.discrep_desc if the discrep_id is in both tables. the first insert should give you 3 rows and the second insert should only give you 3. 826503010 is only in d_desc2 and 879868258 is only in d_desc1. if you know of a loop or anything else that might work better please give me an idea how to write it. I am using oracle 10g.
    thanks.

    figured out myself. Thanks.

  • Need help using Select statement  to  retrieve one record

    Hi guys, my first post so be gentle please. The basis of this fucntion is to search my dtabase using the select statement to find the record the user wants, by retrieving the name of theitem from the text box. details are then displayed on a joption message box.
    Everytime I run this program it throws an exception 'Exception: null'. Can anyone see where I am going wrong, I have only bn learning java for thepast 6 months so perhaps I am doing something wrong.
    Or perhaps there is another way for me to close the st, con, rs?
    Your help appreciated
    public void searchproducts(){
    Connection con = null;
    Statement st = null;
    ResultSet rs = null;
    try{
    //creating and loading a database connection
    String dbUrl = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=db2.mdb;"; // String dbUrl = "jdbc:odbc:people";
    String user = "";
    String password = "";
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    Connection c = DriverManager.getConnection(
    dbUrl, user, password);
    int count;
    st = con.createStatement();
    rs = st.executeQuery("SELECT ItemName, Country, Yearmade, ValuePrice, Forsale FROM Collectman WHERE ItemName="+" '"+txtsearchproduct.getText()+"'" );
    while(rs.next()) {
    String ItemName = rs.getString(1);
    String Country = rs.getString(2);
    String Yearmade = rs.getString(3);
    String ValuePrice = rs.getString(4);
    String Forsale = rs.getString(5);
    JOptionPane.showMessageDialog(null, "product details are: " + ItemName + " " + Country + " " + Yearmade + " " + ValuePrice + " " + Forsale);
    //It keeps on throwing this excpetion with null
    catch (Exception e) {
    System.err.println("Exception: " + e.getMessage());
    } finally {
    try {
    if(rs != null)
    rs.close();
    if(st != null)
    st.close();
    if(con != null)
    con.close();
    } catch (SQLException e) {
    }

    And while we're waiting on that, I'll just say it's nice to see you almost got the general layout of a db call correct...that's a rare thing around here. The finally should have a try/catch round each of the close statements and not around all three in one go. If the resultset throws an exception in your version then you would fail to close either the statement or the connection.
    The second thing is, look up PreparedStatements. They're a better choice for handling SQL requiring variables than using a bog standard Statement.

  • Need help / Advice ; manage daily millions of records;;plz help me:)

    Hi all,
    I've only 2 years of experience in Oracle DBA. I need advice from Experts:)
    To begin, the company I work for, decide to daily save in our Oracle database about 40 millions of records in our only table (User tables). These records should be daily imported from csv or xml feeds into one table.
    This 's a project that need :
    - Study the performance
    - Study What is required in terms of hardware
    As a leader in the market, Oracle 's the only DBMS that could support this size of data, but what's the limit of Oracle in this case? can Oracle support and manage perfectly daily 40 millions of records and for many years, ie We need all data of this table, we can't consider after a period that we don't need history: we need to save all data and without purge the history and this for many years i suppose!!! you can imagine 40 daily millions of records and for many years!!!
    Then we need to consolidate from this table different views (or maybe materalized view) for each department and business inside the company, one other project that need study!
    My questions 're :Using Oracle Database 10g Enterprise Edition Release 10.2.0.1.0:
    1-Can Oracle support and perfectly manage daily 40 millions of records and for many years?
    2-Study the performance ; which solutions, technics could I use to improve the performance of :
    - Daily Loading 40 millions of records from csv or xml file/files?
    - Daily Consolidate / managing different views/ materalized view from this big table?
    3- What is required in terms of hardware? features / Technologies( maybe clusters...)
    Hope that experts help me and advice me! thank you very much for your atention :)

    1-Can Oracle support and perfectly manage daily 40 millions of records and for many years?Yes
    2-Study the performance ; which solutions, technics could I use to improve >>>the performance of :Send me your email, and I can send you a Performance tuning metodology pdf.
    You can see my email on my profile.
    Daily Loading 40 millions of records from csv or xml file/files?DIrect Load
    - Daily Consolidate / managing different views/ materalized view from this big table?You can use table partitions, one partition for each day.
    Regards,
    Francisco Munoz Alvarez

Maybe you are looking for

  • How can I forward a message without downloading it ?

    I'm trying to forward a message on messages counter change event by adding a listener on my INBOX folder: folder.addMessageCountListener(new MessageCountAdapter()   {           public void messagesAdded(MessageCountEvent ev) {               Message[]

  • How do i delete this playlist?

    i have some random playlist in my itunes, it's a dark blue icon with the music notes in it, and i cant seem to delete it....when i right click it, it says open and disconnect, but when i click open it brings up another itunes interface but its empty,

  • Need mac os 10.4 to on powermac g4

    hello i need a free disc's to install on my g4 as it got 9.something on it i need 10.4 or lower ? i dont really now as i'm new to macs but i got given a macbook pro 10.4.10 install discs they are silver some one said they are surpossed to be black. o

  • After installing 10.5.2 - three main side effects!

    Hi all, After upgrading 10.5.2 and graphics update I am experiencing three main problems, and just one of them seems to be a reported bug as far as I know: 1. *The black screen after going to sleep mode*. I found some threads in this forum and I have

  • 2 gen MacBook memory upgrade

    I own a 2 gen MacBook. 2.0 processor. 80 gb hard drive and 1.0 gb of ram. I am thinking very seriously about upgrading to 2.0 gb of ram. I use my computer for basic things and school. It seems that it moves a little slow when I have multiple programs