Oracle sga advisor results

hello all,
When querying this view in regards to the v$sga_shared_pool advisory , i get results but not sure how to interpret the ESTD_LC_TIME_SAVED column ?
It's a time in seconds benchmark to what exactly ?
EST_SIZE FACTOR ESTD_LC_SIZE ESTD_LC_TIME_SAVED HITS
160 0.5 162 215103 43148850
192 0.6 193 215285 43173155
224 0.7 224 215391 43188435
256 0.8 255 215470 43200068
Thanks

ESTD_LC_TIME_SAVED - (From Oracle documentation) Estimated elapsed parse time saved (in seconds), owing to library cache memory objects being found in a shared pool of the specified size. This is the time that would have been spent in reloading the required objects in the shared pool had they been aged out due to insufficient amount of available free memory.
ESTD_LC_TIME_SAVED_FACTOR - indicates how the ESTD_LC_TIME_SAVED relates to the current shared pool.
reference: http://www.alydan.com/weeklytip060.htm
--hope this helps!                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           

Similar Messages

  • SGA advisor

    Hi,
    on 10g R2, can we find what is advised on Dbconsole (DBCONTROLE) on SGA (Advisor Central/Memory Advisor/ SGA tab Advice) in a table by a query ?
    Actually in Performance Tuning Guide I found the following for cache size :
    COLUMN size_for_estimate FORMAT 999,999,999,999 heading 'Cache Size (MB)'
    COLUMN buffers_for_estimate FORMAT 999,999,999 heading 'Buffers'
    COLUMN estd_physical_read_factor FORMAT 999.90 heading 'Estd Phys|Read Factor'
    COLUMN estd_physical_reads FORMAT 999,999,999 heading 'Estd Phys| Reads'
    SELECT size_for_estimate, buffers_for_estimate, estd_physical_read_factor, estd_physical_reads
    FROM V$DB_CACHE_ADVICE
    WHERE name = 'DEFAULT'
    AND block_size = (SELECT value FROM V$PARAMETER WHERE name = 'db_block_size')
    AND advice_status = 'ON';Thank you.

    Hello,
    can we find what is advised on Dbconsole (DBCONTROLE) on SGA (Advisor Central/Memory Advisor/ SGA tab Advice) in a table by a query ?You may execute the Query below so as to get the list of all the Views related to the various Advisors:
    SQL> select table_name from dict where table_name like '%ADVICE%';
    TABLE_NAME
    DBA_HIST_DB_CACHE_ADVICE
    DBA_HIST_JAVA_POOL_ADVICE
    DBA_HIST_MEMORY_TARGET_ADVICE
    DBA_HIST_MTTR_TARGET_ADVICE
    DBA_HIST_PGA_TARGET_ADVICE
    DBA_HIST_SGA_TARGET_ADVICE
    DBA_HIST_SHARED_POOL_ADVICE
    DBA_HIST_STREAMS_POOL_ADVICE
    V$MEMORY_TARGET_ADVICE
    V$MTTR_TARGET_ADVICE
    V$PGA_TARGET_ADVICE
    TABLE_NAME
    V$PGA_TARGET_ADVICE_HISTOGRAM
    V$PX_BUFFER_ADVICE
    V$SGA_TARGET_ADVICE
    V$SHARED_POOL_ADVICE
    V$STREAMS_POOL_ADVICE
    GV$JAVA_POOL_ADVICE
    GV$SGA_TARGET_ADVICE
    GV$SHARED_POOL_ADVICE
    V$JAVA_POOL_ADVICE
    GV$DB_CACHE_ADVICE
    GV$MEMORY_TARGET_ADVICE
    TABLE_NAME
    GV$MTTR_TARGET_ADVICE
    GV$PGA_TARGET_ADVICE_HISTOGRAM
    GV$PGA_TARGET_ADVICE
    GV$PX_BUFFER_ADVICE
    V$DB_CACHE_ADVICE
    GV$STREAMS_POOL_ADVICE
    28 ligne(s) sÚlectionnÚe(s).Then, you have just to check on the REFERENCE book for the complete description of each of these Views:
    http://download.oracle.com/docs/cd/B19306_01/server.102/b14237/dynviews_part.htm#i403961
    Hope this help.
    Best regards,
    Jean-Valentin

  • ORACLE SGA size

    We bought a server for oracle data warehousing which has got 200GB RAM. Can I set set my SGA_TARGET to 100GB. Is it true the more SGA size result in better performance.
    Thaks
    jeevan

    Hi Jeevan,
    I would not set sga_target, it can cause RAM thrashing . . .
    In an article titled Automatic Shared Memory Management we see:
    http://www.oracle.com/technology/pub/articles/10gdba/week17_10gdba.html
    Some pools in SGA are not subject to dynamic resizing, and must be specified explicitly. Notable among them are the buffer pools for nonstandard block sizes and the non-default ones for KEEP or RECYCLE. If your database has a block size of 8K, and you want to configure 2K, 4K, 16K, and 32K block-size pools, you must set them manually.
    Their sizes will remain constant; they will not shrink or expand based on load. You should consider this factor when using multiple-size buffer, KEEP, and RECYCLE pools.
    In addition, log buffer is not subject to the memory adjustment—the value set in the parameter log_buffer is constant, regardless of the workload. ( In 10g, a new type of pool can also be defined in the SGA: Streams pool, set with parameter streams_pool_size. This pool is also not subject to automatic memory tuning.)
    Is it true the more SGA size result in better performance. Yes, but it may not be much, or it could be alot! It depends.
    On a dedicated server, your goal is to allocate all the RAM, without causing swapping. I have my notes here:
    http://www.dba-oracle.com/art_dbazine_ram.htm
    Hope this helps . . .
    Donald K. Burleson
    Oracle Press author
    Author of "Oracle Tuning: The Definitive Reference"
    http://www.rampant-books.com/book_2005_1_awr_proactive_tuning.htm

  • Converting Oracle XML Query Result in Java String by using XSU

    Hi,
    I have a problem by converting Oracle XML Query Result in Java
    String by using XSU. I use XSU for Java.
    For example:
    String datum=new OracleXMLQuery(conn,"Select max(ps.datum) from
    preise ps where match='"+args[0]+"'");
    String datum1=datum;
    I become the following error:
    Prototyp.java:47: Incompatible type for declaration. Can't
    convert oracle.xml.sql.query.OracleXMLQuery to java.lang.String.
    Can somebody tell me a method() for converting to solve my
    problem??????
    Thanks

    Hmmm.. Pretty basic just look at the example:
    OracleXMLQuery qry = new OracleXMLQuery(conn,"Select max(ps.datum) from preise ps where match='"+args[0]+"'");
    String xmlString = qry.getXMLString();
    Hi,
    I have a problem by converting Oracle XML Query Result in Java
    String by using XSU. I use XSU for Java.
    For example:
    String datum=new OracleXMLQuery(conn,"Select max(ps.datum) from
    preise ps where match='"+args[0]+"'");
    String datum1=datum;
    I become the following error:
    Prototyp.java:47: Incompatible type for declaration. Can't
    convert oracle.xml.sql.query.OracleXMLQuery to java.lang.String.
    Can somebody tell me a method() for converting to solve my
    problem??????
    Thanks

  • When oracle invalidates result_cache results without any changes in objects

    Hi all!
    On our production servers we have simple function with result_cache, like this:
    create or replace function f_rc(p_id number) return number result_cache
    is
      ret number;
    begin
      select t.val into ret from rc_table t where t.id=p_id;
      return ret;
    exception
      when no_data_found then
         return null;
    end;
    /And its results frequently invalidates without any changes in table or
    function. I found only 2 cases when oracle invalidates result_cache
    results without any changes in table:
    1. "select for update" from this table with commit;
    2. deletion of unrelated rows from parent table if there is unindexed
    foreign key with "on delete cascade".
    I test it on 11.2.0.1, 11.2.0.3, on solaris x64 and windows. Test
    cases: http://www.xt-r.com/2012/07/when-oracle-invalidates-resultcache.html
    But none of them can be the cause of our situation: we have no
    unindexed fk, and even if i lock all rows with "select for update", it
    still does not stop invalidating.
    In what other cases this happens? Am I right that the oracle does not
    track any changes, but the captures of the locks and "commits"?
    Best regards,
    Sayan Malakshinov
    http://xt-r.com

    Hmm.. Do you about our situation or about test cases with "select for update" and "fk" too?
    I'm not sure that it is a bug, maybe it's an architectural approach to simplify and reduce the cpu load?
    Best regards,
    Sayan Malakshinov
    http://xt-r.com

  • Oracle tunning advisor

    what step are required to improve my query performance.i am using oracle 10gR1 and use oracle tuning advisor from toad.
    SQL ID : 3uv22jhcfbp9s
    SQL Text: /* Formatted on 2008/09/01 14:33 (Formatter Plus v4.8.8) */
    SELECT MAX (document_date)
    FROM item_notesm m, item_notesd d
    WHERE m.document_no = d.document_no
    AND m.document_type = 'ARIN'
    AND m.document_type = d.document_type
    AND d.po = :b1
    AND d.item_code = :b2
    FINDINGS SECTION (1 finding)
    1- SQL Profile Finding (see explain plans section below)
    A potentially better execution plan was found for this statement.
    Recommendation (estimated benefit: 99.54%)
    Consider accepting the recommended SQL profile.
    execute :profile_name := dbms_sqltune.accept_sql_profile(task_name =>
    'DBA10239692.6065484028')
    EXPLAIN PLANS SECTION
    1- Original With Adjusted Cost
    Plan hash value: 3878589888
    | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
    | 0 | SELECT STATEMENT | | 1 | 56 | 40791 (1)| 00:08:10 |
    | 1 | SORT AGGREGATE | | 1 | 56 | | |
    | 2 | NESTED LOOPS | | 25094 | 1372K| 40791 (1)| 00:08:10 |
    | 3 | TABLE ACCESS BY INDEX ROWID| ITEM_NOTESD | 40730 | 1431K| 4 (0)| 00:00:01 |
    | 4 | INDEX RANGE SCAN | INDX_IND_POITEM | 1 | | 3 (0)| 00:00:01 |
    | 5 | TABLE ACCESS BY INDEX ROWID| ITEM_NOTESM | 1 | 20 | 1 (0)| 00:00:01 |
    | 6 | INDEX UNIQUE SCAN | SYS_C006964 | 1 | | 0 (0)| 00:00:01 |
    2- Using SQL Profile
    Plan hash value: 3593538687
    | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
    | 0 | SELECT STATEMENT | | 1 | 56 | 185 (2)| 00:00:03 |
    | 1 | SORT AGGREGATE | | 1 | 56 | | |
    | 2 | HASH JOIN | | 25094 | 1372K| 185 (2)| 00:00:03 |
    | 3 | TABLE ACCESS FULL | ITEM_NOTESM | 8708 | 170K| 180 (1)| 00:00:03 |
    | 4 | TABLE ACCESS BY INDEX ROWID| ITEM_NOTESD | 40730 | 1431K| 4 (0)| 00:00:01 |
    | 5 | INDEX RANGE SCAN | INDX_IND_POITEM | 1 | | 3 (0)| 00:00:01 |
    -------------------------------------------------------------------------------

    Hi,
    You have to force the hash join between item_notesm and item_notesd.
    You can do this using a hint /*+USE_HASH (Table_name/Alias) */ in your query
    Hope this help
    Rgds

  • Oracle SGA benefits of using indexes

    Goo day people,
    We have been having performance issues and then the SGA was not sized coprrectely.
    The size of the SGA was 720mb so we then pushed it to 4 gig which I blv is enough.
    We then did a run of the tuning advisory on the top sql queries that were top one,
    the advisor then pointed on that we need to use indexes on those queries .
    We then advised the developers that they need to use indexes as it will improve
    performance .. This morning the ADDM pointed out that we need to up the sga
    to 5 Gig and I dont see this a solution to the problem.
    I need to find a note on what benefits does using indexes have on the SGA and the overall perfomance
    so that I can show the business that increasing the SGA wont solve the problem.
    See screen shot below
    erformance Finding Details:
         Database Time (minutes)          33.8
         Period Start Time          10-Aug-2010 10:00:11 o'clock SAST
         Period Duration (minutes)          60.2
         Task Owner          SYS
         Task Name          ADDM:1511773678_1_28498
         Average Active Sessions          0.6
         Finding          The SGA was inadequately sized, causing additional I/O or hard parses.
         Impact (minutes)          14.4
         Impact (%)          [64] [86] 42.8
    Recommendations
    Show All Details | Hide All Details
    Details     Category     Benefit (%) [Sorted in descending order]
    [Select to hide information] Hide
         DB Configuration     [64] [86] 42.8
    Action     Increase the size of the SGA by setting the parameter "sga_target" to 5120 M.
    Thanks
    Sibusiso
    Edited by: 787473 on 10-Aug-2010 02:35

    We have been having performance issues and then the SGA was not sized coprrectely.
    The size of the SGA was 720mb so we then pushed it to 4 gig which I blv is enough.
    We then did a run of the tuning advisory on the top sql queries that were top one,
    the advisor then pointed on that we need to use indexes on those queries .
    We then advised the developers that they need to use indexes as it will improve
    performance .. Yes. As those queries must be missing indexes that would prove to be beneficial. So need to take it query by query and created the required indexes.
    This morning the ADDM pointed out that we need to up the sga
    to 5 Gig and I dont see this a solution to the problem.
    I need to find a note on what benefits does using indexes have on the SGA and the overall perfomance
    so that I can show the business that increasing the SGA wont solve the problem.
    See screen shot below
    erformance Finding Details:
         Database Time (minutes)          33.8
         Period Start Time          10-Aug-2010 10:00:11 o'clock SAST
         Period Duration (minutes)          60.2
         Task Owner          SYS
         Task Name          ADDM:1511773678_1_28498
         Average Active Sessions          0.6
         Finding          The SGA was inadequately sized, causing additional I/O or hard parses.
         Impact (minutes)          14.4
         Impact (%)          [64] [86] 42.8
    Recommendations
    Show All Details | Hide All Details
    Details     Category     Benefit (%) [Sorted in descending order]
    [Select to hide information] Hide
         DB Configuration     [64] [86] 42.8
    Action     Increase the size of the SGA by setting the parameter "sga_target" to 5120 M.One of the biggest impact of indexes (if they fit in the scenario) is in reducing the IO (by avoiding full table scans). Reduced IO means faster system. Absence of indexes would mean that you read lots of data into the memory [buffer cache] and data would flush out quickly too (to make space for the new data), resulting in more IO. So having indexes in place means you only read as much amount of data as required and frequently accessed data stays in the memory.
    Kinda incomplete answer...Lets wait for other experts' comments :)
    Edited by: amardeep.sidhu on Aug 10, 2010 3:23 PM

  • How to generate XML file from oracle database query result

    Hi dudes,
    as stated on the subject, can anyone suggests me how can i achieve the task stated above??
    Here is a brief description of my problem:
    I need to create a XML file once i query from the oracle database, and the query result returned from the database will be stored in XML file.
    I'd searched around the JAXB, DOM, SAXP and the like basic concepts, but i still don't know how to start??
    Any suggestions ???

    Read this:
    http://www.cafeconleche.org/books/xmljava/chapters/ch08s05.html
    You might have to read more of the book to understand that chapter.

  • Oracle db wrong result on subquery error

    Hi,
    I work with Oracle databases up to 10g and I found an error and couldn’t find any documentation about it yet. Perhaps you can help me.
    The error is quite easy to replicate. If you run the following query adapting the parameters you should get a result, the problem is that you should only get an error!
    select * from user_tab_columns
    where table_name in
    select table_name from <TABLE_B>
    Parameter: TABLE_B
    Description: This should be an existing table of the schema which doesn’t have any table_name field.
    As I said, the sub-query is wrong, so if you try to run it separately it fails. The problem is when you run both together because, if the link field has the same name, it returns all values of the table in the outer query.
    Do you know if this is solved in 11g or in a specific patch of 10g?
    Thanks in advance for your interest.
    Best regards,
    Leo ([email protected])

    user6396183 wrote:
    I don't think a query whose inner query evaluates to ORA-00904 'Invalid identifier' should return anything, it's not logic. To me this is a bug.
    If you execute the following query it will retrieve all records from the outer table when it should only return an exception as the inner query can not be evaluated at all.
    select * from user_tab_columns
    where table_name in (select table_name from user_role_privs);You still did not get it. Yes inner query by itself results in ORA-00904 'Invalid identifier' only if you execute it independently:
    select table_name from user_role_privsOracle parser tries to figure out what table_name is. It is not a literal, therefore it concludes it is an identifier. Now the only table in FROM list is user_role_privs and it has no such column. Then parser checks if such function exists and it does not, etc... At the end ORA-00904 'Invalid identifier' is raised. However, look what happens if you issue it as a sub_query:
    select * from user_tab_columns
    where table_name in (select table_name from user_role_privs);Again, Oracle parser tries to figure out what table_name is. It is not a literal, therefore it concludes it is an identifier. Now the only table in FROM list is user_role_privs and it has no such column. Now, parser realizes it is a subquery and table_name can be a correlated name. So it checks main query FROM clause list and guess what - table user_tab_columns has a column table_name. So what subquery means is select a row from table user_tab_columns, which will give as some column table_name value and then use that value in subquery, get results and compare it with same table_name value. Now, I hope, you can see that no error should be raised. And, if user_role_privs is not empty, query will return every row in user_tab_columns. If user_role_privs is empty, query will not return any rows. But again, error is neither raised nor should be raised.
    SY.

  • Oracle SGA sizing

    Hi,
    I have an oracle rac 10g with 4 nodes on linux and each node has 12G RAM memory. my current SGA sizing from pfile looks like this, I need suggestions to change values to have better performance...
    racdb2.__db_cache_size=2080374784
    racdb3.__db_cache_size=2214592512
    racdb4.__db_cache_size=5620367360
    racdb1.__db_cache_size=2818572288
    racdb2.__java_pool_size=16777216
    racdb3.__java_pool_size=16777216
    racdb1.__java_pool_size=67108864
    racdb4.__java_pool_size=67108864
    racdb1.__large_pool_size=16777216
    racdb2.__large_pool_size=16777216
    racdb3.__large_pool_size=16777216
    racdb4.__large_pool_size=16777216
    racdb2.__shared_pool_size=5737807872
    racdb3.__shared_pool_size=5603590144
    racdb4.__shared_pool_size=2147483648
    racdb1.__shared_pool_size=4932501504
    racdb1.__streams_pool_size=16777216
    racdb2.__streams_pool_size=0
    racdb3.__streams_pool_size=0
    racdb4.__streams_pool_size=0

    SQL> select * from v$sga_target_advice;
      SGA_SIZE SGA_SIZE_FACTOR ESTD_DB_TIME ESTD_DB_TIME_FACTOR ESTD_PHYSICAL_READS
           268           1         471             1            37727
           134          .5       10732          22.7856            54293
           201            .75         498           1.0573            43363
           536           2         435            .9236            29420
           402            1.5         435            .9236            29420
           469           1.75         435            .9236            29420
           335           1.25         442            .9384            31046
    7 rows selected.

  • Oracle SGA Real Time Consumption Information(9i,10g and 11g)

    Hello,
    I need to prepare a comparative analysis report of SGA for an Oracle Production Instance
    The analysis would show the pre-allocated memory to SGA components v/s real time consumption of memory by these SGA components. I need to do this for each of following components.
    SGA itself
    Fixed Size
    Variable Size
    Database Buffers
    Redo Buffers
    The pre-allocated memory to above SGA components can be obtained by querying v$sga. But from where do I get its real time(current) memory conusmption in Oracle Production environment.
    In addition to above, i need the same information (pre-allocated and real time consumption) for following.
    Keep buffer cache
    Recycle buffer cache
    Specific block size caches
    Shared pool
    Large pool
    Java pool
    streams pool
    Which tables do I need to consider in order to derive 1)pre-allocated memory and 2)real time consumption for above mentioned SGA components
    Please advice.
    Thank you for your time in reading this post.
    Thanks,
    Ruchir

    Hi,
    Have a look at v$sgastat. Also, use statspack in 9i and AWR reports on 10g. Also, the size of the caches won't grow unless they are used. The parameters you have specified within the parameter file, like sga_target (10g onwards) and possibly the other pools if you have specified them, will show you what the caches can grow to.
    For example, you could just log onto the DB and do show parameter sga_ or shared_pool and you will seee values for these. Also, it depends whether you are running in automatic memory management mode - where the sga_target parameter is set - or manual. 9i will be manual, but 10g could be auto. In manual case, 9i, check out the parameters individually.
    Also, read the docs about the parameters shown and you will see what it says abotu them. There will be lots in the docs about performance tuning and monitoring of the instance. You might even learn some other interesting facts while reading through the docs...
    Hope this helps,
    Rob
    http://www.ora00600.com

  • Oracle SGA MEMEORY SETTINGS , SGA_TRAGET , SGA_MAX_SIZE

    Hello Techies,
    I have a production environment where one of the Databases RAM is set to 6G where as the RAM installed on the server is 8GB. We have the Grid agent installed on it and according to the Oracle Grid there is impact on the performance and RAM has to be extened to 7.2 GB.
    Now my question is, whether we can extend this as we only have 8GB installed on the server. Will the left out 800 M is enough for the server?
    Or Should we need to extend the RAM on the server and then extend the SGA_TARGET AND SGA_MAX_SIZE? if so can you suggest the values.
    Could you shed some light on the cosiderations while we want to extend the SGA.
    Server - Windows
    DB - Oracle 10g
    Thank you.
    Regards,
    RanG.

    Hi sb92075,
    Here is the query , consuming significant DB time from Oracle Grid ...
    select e7.cmpcode as comp_no , e7.code as emcode , upper(a.add1) as user_name , upper(a.add2) as domain , upper(a.add3) as reviewer , upper(a.add4) as approver1 , upper(a.add5) as approver2 , a.emailaddr as email , l.cfvalue as costcentre , case e7.repcode3 when 'FRANCHISE' then '7001F' when 'STORE' then '7001S' else e7.cmpcode end as template , b.acnum as account , e7.name as account_holder
    from xxxx.oas_element e7 inner join coda.oas_elmaddrlist a on (e7.cmpcode = a.cmpcode and e7.code = a.elmcode and e7.elmlevel=a.elmlevel and a.catagory='EXPPORTAL') inner join xxxx.oas_rllist l on (e7.cmpcode = l.cmpcode and e7.code = l.elmcode and e7.elmlevel=l.elmlevel) left join xxxx.oas_elmbanklist b on (e7.cmpcode = b.cmpcode and e7.code = b.elmcode and b.elmlevel=2 and b.defbank=1)
    where e7.elmlevel=7 and e7.code like 'EM%' and l.lstseqno=1 and l.cffunction=0 and e7.cmpcode = '7001' and a.add1 is not null and a.add2 is not null and ((a.add3 is not null and a.add5 is not null and a.add2 = 'xxxx') or a.add2 != 'xxxx') and a.add4 is not null and b.acnum is not null and b.acname is not null
    =========================
    The other example of one of the 20 queries which run on this DB, i am sry for the lenght of the query ,
    =============================
    SELECT
      case 8 when 4 then 'T1' when 8 then 'T2' when 12 then 'T3' else 'Unknown' end,
      OAS_REPPACK.L1NAME,
      OAS_REPPACK.L1HDRTXT,
      OAS_REPPACK.L2NAME,
      OAS_REPPACK.L2HDRTXT,
      OAS_REPPACK.L3NAME,
      OAS_REPPACK.L3HDRTXT,
      OAS_REPPACK.L4NAME,
      OAS_REPPACK.L4HDRTXT,
      OAS_BALANCE.cmpcode,
      OAS_REPPACK.L5NAME,
      OAS_REPPACK.L5HDRTXT,
      OAS_REPPACK.LEAFNAME,
      OAS_REPPACK.LEAFHDRTXT,
      OAS_REPPACK.L2ORDER,
      OAS_REPPACK.L3ORDER,
      OAS_REPPACK.L4ORDER,
      OAS_REPPACK.L5ORDER,
    -- Actual YTD --
    SUM(OAS_BALANCE.FULL_VALUE
    *CASE WHEN OAS_BALANCE.BALCODE = 'ACTUAL' THEN 1 ELSE 0 END
    *CASE WHEN IIS_CURRENCY(case OAS_BALANCE.cmpcode when '7004' then 'SEK' when '7041' then 'SEK' when '7015' then 'USD' when '7042' then 'USD' else 'EUR' end, 'XEUR', 'Entity Currency' ) =  OAS_BALANCE.CURCODE THEN 1 ELSE 0 END
    *CASE WHEN  IIS_PERIOD(OAS_BALANCE.PERIOD, 'Calendar Year') <= 8 AND IIS_YEAR(OAS_BALANCE.YR, OAS_BALANCE.PERIOD, 'Calendar Year') = 2013 THEN 1 ELSE 0 END
    -- Actual YTD Last Year--
    SUM(OAS_BALANCE.FULL_VALUE
    *CASE WHEN OAS_BALANCE.BALCODE = 'ACTUAL' THEN 1 ELSE 0 END
    *CASE WHEN IIS_CURRENCY(case OAS_BALANCE.cmpcode when '7004' then 'SEK' when '7041' then 'SEK' when '7015' then 'USD' when '7042' then 'USD' else 'EUR' end, 'XEUR', 'Entity Currency' ) =  OAS_BALANCE.CURCODE THEN 1 ELSE 0 END
    *CASE WHEN  IIS_PERIOD(OAS_BALANCE.PERIOD, 'Calendar Year') <= 8 AND IIS_YEAR(OAS_BALANCE.YR, OAS_BALANCE.PERIOD, 'Calendar Year') = 2013-1 THEN 1 ELSE 0 END
    -- Actual Full Year Last Year--
    SUM(OAS_BALANCE.FULL_VALUE
    *CASE WHEN OAS_BALANCE.BALCODE = 'ACTUAL' THEN 1 ELSE 0 END
    *CASE WHEN IIS_CURRENCY(case OAS_BALANCE.cmpcode when '7004' then 'SEK' when '7041' then 'SEK' when '7015' then 'USD' when '7042' then 'USD' else 'EUR' end, 'XEUR', 'Entity Currency' ) =  OAS_BALANCE.CURCODE THEN 1 ELSE 0 END
    *CASE WHEN   IIS_PERIOD(OAS_BALANCE.PERIOD, 'Calendar Year') <= 9998 AND IIS_YEAR(OAS_BALANCE.YR, OAS_BALANCE.PERIOD, 'Calendar Year') = 2013-1 THEN 1 ELSE 0 END
    -- Budget YTD --
    SUM(OAS_BALANCE.FULL_VALUE
    *CASE
    WHEN OAS_BALANCE.CURCODE = case OAS_BALANCE.cmpcode when '7004' then 'SEK' when '7041' then 'SEK' when '7015' then 'USD' when '7042' then 'USD' else 'EUR' end AND 'Entity Currency' = 'Entity Currency'  THEN 1
    WHEN OAS_BALANCE.CURCODE = case OAS_BALANCE.cmpcode when '7004' then 'SEK' when '7041' then 'SEK' when '7015' then 'USD' when '7042' then 'USD' else 'EUR' end AND 'Entity Currency' = 'Group Currency'  THEN IIS_BUDGETRATES.RATE
    ELSE 0 END
    *CASE WHEN OAS_BALANCE.BALCODE = IIS_PFBALCODE(OAS_BALANCE.BALCODE, 'Calendar Year')||'BUDG' THEN 1 ELSE 0 END
    *CASE WHEN  IIS_PERIOD(OAS_BALANCE.PERIOD, 'Calendar Year') <= 8 AND IIS_YEAR(OAS_BALANCE.YR, OAS_BALANCE.PERIOD, 'Calendar Year') = 2013 THEN 1 ELSE 0 END
    -- Budget Full Year --
    SUM(OAS_BALANCE.FULL_VALUE
    *CASE
    WHEN OAS_BALANCE.CURCODE = case OAS_BALANCE.cmpcode when '7004' then 'SEK' when '7041' then 'SEK' when '7015' then 'USD' when '7042' then 'USD' else 'EUR' end AND 'Entity Currency' = 'Entity Currency'  THEN 1
    WHEN OAS_BALANCE.CURCODE = case OAS_BALANCE.cmpcode when '7004' then 'SEK' when '7041' then 'SEK' when '7015' then 'USD' when '7042' then 'USD' else 'EUR' end AND 'Entity Currency' = 'Group Currency'  THEN IIS_BUDGETRATES.RATE
    ELSE 0 END
    *CASE WHEN OAS_BALANCE.BALCODE = IIS_PFBALCODE(OAS_BALANCE.BALCODE, 'Calendar Year')||'BUDG' THEN 1 ELSE 0 END
    *CASE WHEN  IIS_YEAR(OAS_BALANCE.YR, OAS_BALANCE.PERIOD, 'Calendar Year') = 2013 THEN 1 ELSE 0 END
    -- Estimate 1 --
    -- Actual T1--
    SUM(OAS_BALANCE.FULL_VALUE
    *CASE WHEN OAS_BALANCE.BALCODE = 'ACTUAL' THEN 1 ELSE 0 END
    *CASE WHEN IIS_CURRENCY(case OAS_BALANCE.cmpcode when '7004' then 'SEK' when '7041' then 'SEK' when '7015' then 'USD' when '7042' then 'USD' else 'EUR' end, 'XEUR', 'Entity Currency' ) =  OAS_BALANCE.CURCODE THEN 1 ELSE 0 END
    *CASE WHEN  CASE WHEN IIS_PERIOD(OAS_BALANCE.PERIOD, 'Calendar Year') <=4 THEN 1 WHEN IIS_PERIOD(OAS_BALANCE.PERIOD, 'Calendar Year') BETWEEN 5 AND 8 THEN 2 WHEN IIS_PERIOD(OAS_BALANCE.PERIOD, 'Calendar Year') >= 9 THEN 3 END = 1 AND IIS_YEAR(OAS_BALANCE.YR, OAS_BALANCE.PERIOD, 'Calendar Year') = 2013 THEN 1 ELSE 0 END
    +
    SUM(OAS_BALANCE.FULL_VALUE
    *CASE WHEN OAS_BALANCE.BALCODE = IIS_PFBALCODE(OAS_BALANCE.BALCODE, 'Calendar Year')||'EST1' THEN 1 ELSE 0 END
    *CASE WHEN  IIS_YEAR(OAS_BALANCE.YR, OAS_BALANCE.PERIOD, 'Calendar Year') = 2013 AND IIS_PERIOD(OAS_BALANCE.PERIOD, 'Calendar Year') BETWEEN 5 AND 12 THEN 1 ELSE 0 END
      OAS_COMPANY.NAME,
      IIS_YEAR(OAS_BALANCE.YR, OAS_BALANCE.PERIOD, 'Calendar Year'),
    -- Budget T1--
    SUM(OAS_BALANCE.FULL_VALUE
    *CASE
    WHEN OAS_BALANCE.CURCODE = case OAS_BALANCE.cmpcode when '7004' then 'SEK' when '7041' then 'SEK' when '7015' then 'USD' when '7042' then 'USD' else 'EUR' end AND 'Entity Currency' = 'Entity Currency'  THEN 1
    WHEN OAS_BALANCE.CURCODE = case OAS_BALANCE.cmpcode when '7004' then 'SEK' when '7041' then 'SEK' when '7015' then 'USD' when '7042' then 'USD' else 'EUR' end AND 'Entity Currency' = 'Group Currency'  THEN IIS_BUDGETRATES.RATE
    ELSE 0 END
    *CASE WHEN OAS_BALANCE.BALCODE = IIS_PFBALCODE(OAS_BALANCE.BALCODE, 'Calendar Year')||'BUDG' THEN 1 ELSE 0 END
    *CASE WHEN  CASE WHEN IIS_PERIOD(OAS_BALANCE.PERIOD, 'Calendar Year') <=4 THEN 1 WHEN IIS_PERIOD(OAS_BALANCE.PERIOD, 'Calendar Year') BETWEEN 5 AND 8 THEN 2 WHEN IIS_PERIOD(OAS_BALANCE.PERIOD, 'Calendar Year') >= 9 THEN 3 END = 1 AND IIS_YEAR(OAS_BALANCE.YR, OAS_BALANCE.PERIOD, 'Calendar Year') = 2013 THEN 1 ELSE 0 END
    -- Budget T2--
    SUM(OAS_BALANCE.FULL_VALUE
    *CASE
    WHEN OAS_BALANCE.CURCODE = case OAS_BALANCE.cmpcode when '7004' then 'SEK' when '7041' then 'SEK' when '7015' then 'USD' when '7042' then 'USD' else 'EUR' end AND 'Entity Currency' = 'Entity Currency'  THEN 1
    WHEN OAS_BALANCE.CURCODE = case OAS_BALANCE.cmpcode when '7004' then 'SEK' when '7041' then 'SEK' when '7015' then 'USD' when '7042' then 'USD' else 'EUR' end AND 'Entity Currency' = 'Group Currency'  THEN IIS_BUDGETRATES.RATE
    ELSE 0 END
    *CASE WHEN OAS_BALANCE.BALCODE = IIS_PFBALCODE(OAS_BALANCE.BALCODE, 'Calendar Year')||'BUDG' THEN 1 ELSE 0 END
    *CASE WHEN  CASE WHEN IIS_PERIOD(OAS_BALANCE.PERIOD, 'Calendar Year') <=4 THEN 1 WHEN IIS_PERIOD(OAS_BALANCE.PERIOD, 'Calendar Year') BETWEEN 5 AND 8 THEN 2 WHEN IIS_PERIOD(OAS_BALANCE.PERIOD, 'Calendar Year') >= 9 THEN 3 END = 2 AND IIS_YEAR(OAS_BALANCE.YR, OAS_BALANCE.PERIOD, 'Calendar Year') = 2013 THEN 1 ELSE 0 END
    -- Budget T3--
    SUM(OAS_BALANCE.FULL_VALUE
    *CASE
    WHEN OAS_BALANCE.CURCODE = case OAS_BALANCE.cmpcode when '7004' then 'SEK' when '7041' then 'SEK' when '7015' then 'USD' when '7042' then 'USD' else 'EUR' end AND 'Entity Currency' = 'Entity Currency'  THEN 1
    WHEN OAS_BALANCE.CURCODE = case OAS_BALANCE.cmpcode when '7004' then 'SEK' when '7041' then 'SEK' when '7015' then 'USD' when '7042' then 'USD' else 'EUR' end AND 'Entity Currency' = 'Group Currency'  THEN IIS_BUDGETRATES.RATE
    ELSE 0 END
    *CASE WHEN OAS_BALANCE.BALCODE = IIS_PFBALCODE(OAS_BALANCE.BALCODE, 'Calendar Year')||'BUDG' THEN 1 ELSE 0 END
    *CASE WHEN  CASE WHEN IIS_PERIOD(OAS_BALANCE.PERIOD, 'Calendar Year') <=4 THEN 1 WHEN IIS_PERIOD(OAS_BALANCE.PERIOD, 'Calendar Year') BETWEEN 5 AND 8 THEN 2 WHEN IIS_PERIOD(OAS_BALANCE.PERIOD, 'Calendar Year') >= 9 THEN 3 END = 3 AND IIS_YEAR(OAS_BALANCE.YR, OAS_BALANCE.PERIOD, 'Calendar Year') = 2013 THEN 1 ELSE 0 END
    -- Estimate 0 --
    SUM(OAS_BALANCE.FULL_VALUE
    *CASE
    WHEN OAS_BALANCE.CURCODE = case OAS_BALANCE.cmpcode when '7004' then 'SEK' when '7041' then 'SEK' when '7015' then 'USD' when '7042' then 'USD' else 'EUR' end AND 'Entity Currency' = 'Entity Currency'  THEN 1
    WHEN OAS_BALANCE.CURCODE = case OAS_BALANCE.cmpcode when '7004' then 'SEK' when '7041' then 'SEK' when '7015' then 'USD' when '7042' then 'USD' else 'EUR' end AND 'Entity Currency' = 'Group Currency'  THEN IIS_BUDGETRATES.RATE
    ELSE 0 END
    *CASE WHEN OAS_BALANCE.BALCODE = IIS_PFBALCODE(OAS_BALANCE.BALCODE, 'Calendar Year')||'EST0' THEN 1 ELSE 0 END
    *CASE WHEN  IIS_YEAR(OAS_BALANCE.YR, OAS_BALANCE.PERIOD, 'Calendar Year') = 2013 THEN 1 ELSE 0 END
    -- Estimate 2 --
    -- Actual T1--
    SUM(OAS_BALANCE.FULL_VALUE
    *CASE WHEN OAS_BALANCE.BALCODE = 'ACTUAL' THEN 1 ELSE 0 END
    *CASE WHEN IIS_CURRENCY(case OAS_BALANCE.cmpcode when '7004' then 'SEK' when '7041' then 'SEK' when '7015' then 'USD' when '7042' then 'USD' else 'EUR' end, 'XEUR', 'Entity Currency' ) =  OAS_BALANCE.CURCODE THEN 1 ELSE 0 END
    *CASE WHEN  CASE WHEN IIS_PERIOD(OAS_BALANCE.PERIOD, 'Calendar Year') <=4 THEN 1 WHEN IIS_PERIOD(OAS_BALANCE.PERIOD, 'Calendar Year') BETWEEN 5 AND 8 THEN 2 WHEN IIS_PERIOD(OAS_BALANCE.PERIOD, 'Calendar Year') >= 9 THEN 3 END = 1 AND IIS_YEAR(OAS_BALANCE.YR, OAS_BALANCE.PERIOD, 'Calendar Year') = 2013 THEN 1 ELSE 0 END
    +
    -- Actual T2--
    SUM(OAS_BALANCE.FULL_VALUE
    *CASE WHEN OAS_BALANCE.BALCODE = 'ACTUAL' THEN 1 ELSE 0 END
    *CASE WHEN IIS_CURRENCY(case OAS_BALANCE.cmpcode when '7004' then 'SEK' when '7041' then 'SEK' when '7015' then 'USD' when '7042' then 'USD' else 'EUR' end, 'XEUR', 'Entity Currency' ) =  OAS_BALANCE.CURCODE THEN 1 ELSE 0 END
    *CASE WHEN  CASE WHEN IIS_PERIOD(OAS_BALANCE.PERIOD, 'Calendar Year') <=4 THEN 1 WHEN IIS_PERIOD(OAS_BALANCE.PERIOD, 'Calendar Year') BETWEEN 5 AND 8 THEN 2 WHEN IIS_PERIOD(OAS_BALANCE.PERIOD, 'Calendar Year') >= 9 THEN 3 END = 2 AND IIS_YEAR(OAS_BALANCE.YR, OAS_BALANCE.PERIOD, 'Calendar Year') = 2013 THEN 1 ELSE 0 END
    +
    SUM(OAS_BALANCE.FULL_VALUE
    *CASE
    WHEN OAS_BALANCE.CURCODE = case OAS_BALANCE.cmpcode when '7004' then 'SEK' when '7041' then 'SEK' when '7015' then 'USD' when '7042' then 'USD' else 'EUR' end AND 'Entity Currency' = 'Entity Currency'  THEN 1
    WHEN OAS_BALANCE.CURCODE = case OAS_BALANCE.cmpcode when '7004' then 'SEK' when '7041' then 'SEK' when '7015' then 'USD' when '7042' then 'USD' else 'EUR' end AND 'Entity Currency' = 'Group Currency'  THEN IIS_BUDGETRATES.RATE
    ELSE 0 END
    *CASE WHEN OAS_BALANCE.BALCODE = IIS_PFBALCODE(OAS_BALANCE.BALCODE, 'Calendar Year')||'EST2' THEN 1 ELSE 0 END
    *CASE WHEN  IIS_YEAR(OAS_BALANCE.YR, OAS_BALANCE.PERIOD, 'Calendar Year') = 2013 AND IIS_PERIOD(OAS_BALANCE.PERIOD, 'Calendar Year') BETWEEN 9 AND 12 THEN 1 ELSE 0 END
    FROM
      OAS_BALANCE,
      OAS_GRPLIST  OAS_GRPLIST1RP,
      OAS_ELEMENT  OAS_EL1,
      OAS_HIMLIST  OAS_REPPACK,
      OAS_COMPANY,
      IIS_BUDGETRATES,
      IIS_BOSEC_CC  IIS_BOSECURITY_BAL,
      SELECT DISTINCT USRCODE, USRNAME, COMPANY FROM IIS_BOSEC_CC
      )  IIS_BOSECURITY_CMP
    WHERE
      ( OAS_COMPANY.CODE=OAS_BALANCE.CMPCODE  )
      AND  ( OAS_BALANCE.REPBASIS=0  )
      AND  ( OAS_EL1.ELMLEVEL=1  )
      AND  ( OAS_BALANCE.CMPCODE=OAS_EL1.CMPCODE and OAS_BALANCE.EL1=OAS_EL1.CODE  )
      AND  ( OAS_EL1.CMPCODE=OAS_GRPLIST1RP.CMPCODE and OAS_EL1.CODE=OAS_GRPLIST1RP.CODE and OAS_EL1.ELMLEVEL=OAS_GRPLIST1RP.ELMLEVEL and
    (OAS_GRPLIST1RP.GRPCODE  LIKE '1RB%' OR
    OAS_GRPLIST1RP.GRPCODE LIKE '1RP%')  )
      AND  ( OAS_REPPACK.GRPCODE=OAS_GRPLIST1RP.GRPCODE  )
      AND  ( OAS_REPPACK.CODE LIKE '1RP%'  )
      AND  ( IIS_BUDGETRATES.YR(+) =OAS_BALANCE.YR AND IIS_BUDGETRATES.PERIOD(+)=OAS_BALANCE.PERIOD AND
    IIS_BUDGETRATES.BALCODE(+) = OAS_BALANCE.BALCODE AND
    IIS_BUDGETRATES.CURCODE(+) = OAS_BALANCE.CURCODE  )
      AND  ( IIS_BOSECURITY_CMP.COMPANY=OAS_COMPANY.CODE  )
      AND  ( IIS_BOSECURITY_CMP.USRCODE=UPPER('exttino')  )
      AND  ( IIS_BOSECURITY_BAL.COMPANY=OAS_BALANCE.CMPCODE and IIS_BOSECURITY_BAL.COSTCENTRE=CASE  WHEN IIS_BOSECURITY_BAL.COSTCENTRE = 'ALL' THEN IIS_BOSECURITY_BAL.COSTCENTRE WHEN OAS_BALANCE.EL4 = ' ' THEN 'ALL' ELSE OAS_BALANCE.EL4 END  )
      AND 
        ( CASE WHEN 'Calendar Year' = 'Calendar Year'
              THEN OAS_BALANCE.YR
              WHEN 'Calendar Year' = 'Business Year'
              THEN CASE WHEN OAS_BALANCE.PERIOD <9    THEN OAS_BALANCE.YR ELSE OAS_BALANCE.YR+1 END
    END +1 = 2013  )
        OR
        ( CASE WHEN 'Calendar Year' = 'Calendar Year'
              THEN OAS_BALANCE.YR
              WHEN 'Calendar Year' = 'Business Year'
              THEN CASE WHEN OAS_BALANCE.PERIOD <9    THEN OAS_BALANCE.YR ELSE OAS_BALANCE.YR+1 END
    END = 2013  )
       AND
        ( IIS_BOSECURITY_BAL.USRCODE = UPPER('exttino')  )
        AND
        ( IIS_BOSECURITY_CMP.USRCODE = UPPER('exttino')  )
    GROUP BY
      case 8 when 4 then 'T1' when 8 then 'T2' when 12 then 'T3' else 'Unknown' end,
      OAS_REPPACK.L1NAME,
      OAS_REPPACK.L1HDRTXT,
      OAS_REPPACK.L2NAME,
      OAS_REPPACK.L2HDRTXT,
      OAS_REPPACK.L3NAME,
      OAS_REPPACK.L3HDRTXT,
      OAS_REPPACK.L4NAME,
      OAS_REPPACK.L4HDRTXT,
      OAS_BALANCE.cmpcode,
      OAS_REPPACK.L5NAME,
      OAS_REPPACK.L5HDRTXT,
      OAS_REPPACK.LEAFNAME,
      OAS_REPPACK.LEAFHDRTXT,
      OAS_REPPACK.L2ORDER,
      OAS_REPPACK.L3ORDER,
      OAS_REPPACK.L4ORDER,
      OAS_REPPACK.L5ORDER,
      OAS_COMPANY.NAME,
      IIS_YEAR(OAS_BALANCE.YR, OAS_BALANCE.PERIOD, 'Calendar Year')
    =============================
    Regards,
    RanG

  • Oracle SGA components manual allocation

    All,
    Phyical memory : 420G My database version : 11.2.0.3 running on linux machine.
    Memory_target = 200G . I would like to allocate this value to following SGA components. I don't want to automatic memory management enabled. Can you please guide me how to split 200G for following components. Is there any percentage for each components ?
    db_cache_size
    db_recycle_cache_size
    db_keep_cache_size
    large_pool_size
    java_pool_size
    shared_pool_size
    pga_aggregate_target
    streams_pool_size
    log_buffer
    Thanks

    There is no 'default' settings for the components. Oracle tell you, when you create a database with DBCA, that the values provided by that tool are for a sample database and you should tune them to how you see fit.
    This is what I would do (assuming this is a test environment, of course):
    - If you're using HugePages, disable it.
    - Run with AMM but give some key components a 'minimum' value (such as SGA, PGA, shared_pool, etc) so it's not too crazy. Setting everything at 0 can have performance issues with some databses, strangely.
    - Run an entire workload cycle (day, week, etc) - enough batch processing to mimic a realistic workload on Production
    - Check out the dynamic views/AWR reports to see what the database advises with the various components.
    - If you want to use HugePages, then set the SGA and PGA to whatever you've determined from the AWR reports. You can choose whether to specify minimum values for the SGA components.
    - If you're not using HugePages, you really should use AMM. What I do is give the SGA and PGA minimum values and allow the database to decide which one gets the 'extra' memory that's left over. That way, the SGA doesn't drop to an impossibly small size and cause everything to crap out.
    Mark

  • Solaris hangs when Oracle SGA is too large

    I am an Oracle DBA with preconfigured Solaris servers. Our Unix admin is outsourced so we don't have a lot of good support here. When I set the instance SGA too large the server hangs and requires a hard reboot It seems that the error is due to insufficient memory or swap. Is this normal behaviour for Solaris 10? Shouldn't the process abend before the server does?

    I've managed to duplicate this behavour on two seperate boxes. The first server is quite small only 1G physical memory and the SGA target was set too high. Additionally Oracle was competing with other resources on this box. Still it was surprising to me that the server actually hung. I would have expected to get something like "shared memory realm does not exists" if there was not enough memory.
    The second box has 8G physical memory and 4G swap. I set up the oracle /etc/project parameters for this one, here are the kernel settings:
    shminfo_shmmni = 256
    seminfo_semmni = 128
    shminfo_shmmax = 4G
    seminfo_semmsl = 256
    In this case Solaris hung when I started the database with a 4G MAX_SGA_SIZE, I don't think SGA_TARGET was set. I think the server ran out of swap but I'm still confused because it seems like physical memory should have been available. Also I don't understand why the Oracle instance would have even been using swap because Oracle locks physical memory using ISM or DISM.
    In both case the OS hung and could only be revived with a hard reboot.

  • Apex 4.0 Application Utilities Advisor Results

    The application Utilities Advisor is reporting the following error:
    Attribute     Ldap Username Edit Function (A function that can refine the username captured in the login form into a format suitable for the LDAP call.)
    Check     Is Valid SQL or PL/SQL Code
    Message     
    Compilation error - ORA-06550: line 5, column 8:
    PLS-00382: expression is of wrong type
    ORA-06550: line 5, column 1:
    PL/SQL: Statement ignored
    Value return baninst1.htmldb_ldap_pkg.get_dn
    The function returns a varchar2 and compiles with no problems. Authentication succeeds and users are allowed into application.
    What code is the Advisor checking, so that we can fix this error?
    Thanks
    Wayne

    The header is with fixed width probably, i just edited the page template, specifying the height according to my logo:
    <div id="header" style="height: 115px;">
      <div id="logo"><a href="#HOME_LINK#">#LOGO#      ....

Maybe you are looking for

  • IPad2 iOS 6.1 cannot send email - password not saved

    I recently upgraded to IOS 6.1 and it must have been around that time that I started receiving errors when trying to send emails.  I can recieve fine, but cannot send.  The error I get is "A copy has been placed in your Outbox.  No password provided.

  • EXTREME Dynamic List of Field Symbols

    Hi All, This requirement have created lots of issues fo me and oculd not reach it, hence i am here : Internal table 1 with 'a' columns                    Internal Table 2  with 'b' columns a1    a2     a3                                              

  • Urgent: Problem in validation created in T code  OB28

    Hi,        Because of some requirement . i did created a validation in OB28 for a specific company code.After saving that validation ,code was automatically  generated in include GBTI6FID code:FORM VAL_AJAY.       NEW_SIM_TRACE_AJAY                  

  • Skype 7.0 crashing

    Every time I sign in, Skype crashes. I've uninstalled and reinstalled countless times, but then not only does it stop responding, Windows can't 'find a solution' and closes the program. Any suggestions? Solved! Go to Solution.

  • Metadata and Reflection

    Hi all, the great dream for any java programmer is a kind of runtime support for mapping relations to objects. Now is possible! The Oracle iWorkplace applications comes with java sources that demonstrate how is possible, using JDBC database metadata