Query by example and outer join supported?

Does TopLink support outer joins when using query by example and cursored streams? I am having problems getting this to work. It seems to completely ignore the requested outer join.
I have tried several variations of what is below, but have never seen TopLink generate the outer join. This is against Oracle 9i on TopLink 9.0.4.5.
Customer 1->1 Address (using valueholder indirection)
ReadAllQuery q = new ReadAllQuery();
q.setReferenceClass(Customer.class);
QueryByExamplePolicy policy = new QueryByExamplePolicy();
policy.addSpecialOperation(String.class, "like");
q.setQueryByExamplePolicy(policy);
ExpressionBuilder builder = q.getExpressionBuilder();
Expression addressExp = builder.getAllowingNull("address");
q.addJoinedAttribute(addressExp);
q.addOrdering(addressExp.get("city").ascending());
q.useCursoredStream(end-start, end-start);
q.setExampleObject(exampleCustomer);
CursoredStream stream = (CursoredStream)s.executeQuery(q);
...iterate through the stream...
Note, that the database level relationship is expressed through a target foreign key.
(     addressMapping.addTargetForeignKeyFieldName("ADDRESS.CUSTOMER_ID", "CUSTOMER.CUSTOMER_ID");)
Any help would be appreciated.
Thanks,
Kevin

Kevin,
I spoke too soon. All you need to do is use the getAllowingNull in the ordering expression and not use the addJoinedAttribute. With this you can use query-by-example with additional outer-joined ordering.
Here is an example based on the Employee demo:
ReadAllQuery raq = new ReadAllQuery(Employee.class);
ExpressionBuilder eb = raq.getExpressionBuilder();
raq.addOrdering(eb.getAllowingNull("address").get("city").ascending());
Employee exampleEmp = new Employee();
exampleEmp.setLastName("%");
// My default constructor populates the period so I'll null them so
// they are not included in the selection criteria of the example object
exampleEmp.getPeriod().setStartDate(null);
exampleEmp.getPeriod().setEndDate(null);
QueryByExamplePolicy policy = new QueryByExamplePolicy();
policy.addSpecialOperation(String.class, "like");
raq.setQueryByExamplePolicy(policy);
raq.setExampleObject(exampleEmp);
List emps = (List) session.executeQuery(raq);
I hope this helps,
Doug

Similar Messages

  • Difference between inner join and outer join

    1.Difference between inner join and outer join
    2.wht is the difference in using hide and get crusor value in interactive.
    3. Using join is better or views in writting program . Which is better.

    Table 1                      Table 2
    A
    B
    C
    D
    D
    E
    F
    G
    H
    a1
    b1
    c1
    1
    1
    e1
    f1
    g1
    h1
    a2
    b2
    c2
    1
    3
    e2
    f2
    g2
    h2
    a3
    b3
    c3
    2
    4
    e3
    f3
    g3
    h3
    a4
    b4
    c4
    3
    |--|||--|
        Inner Join
        |--||||||||--|
        | A  | B  | C  | D  | D  | E  | F  | G  | H  |
        |--||||||||--|
        | a1 | b1 | c1 | 1  | 1  | e1 | f1 | g1 | h1 |
        | a2 | b2 | c2 | 1  | 1  | e1 | f1 | g1 | h1 |
        | a4 | b4 | c4 | 3  | 3  | e2 | f2 | g2 | h2 |
        |--||||||||--|
    Example
    Output a list of all flights from Frankfurt to New York between September 10th and 20th, 2001 that are not sold out:
    DATA: DATE   LIKE SFLIGHT-FLDATE,
          CARRID LIKE SFLIGHT-CARRID,
          CONNID LIKE SFLIGHT-CONNID.
    SELECT FCARRID FCONNID F~FLDATE
        INTO (CARRID, CONNID, DATE)
        FROM SFLIGHT AS F INNER JOIN SPFLI AS P
               ON FCARRID = PCARRID AND
                  FCONNID = PCONNID
        WHERE P~CITYFROM = 'FRANKFURT'
          AND P~CITYTO   = 'NEW YORK'
          AND F~FLDATE BETWEEN '20010910' AND '20010920'
          AND FSEATSOCC < FSEATSMAX.
      WRITE: / DATE, CARRID, CONNID.
    ENDSELECT.
    If there are columns with the same name in both tables, you must distinguish between them by prefixing the field descriptor with the table name or a table alias.
    Note
    In order to determine the result of a SELECT command where the FROM clause contains a join, the database system first creates a temporary table containing the lines that meet the ON condition. The WHERE condition is then applied to the temporary table. It does not matter in an inner join whether the condition is in the ON or WHEREclause. The following example returns the same solution as the previous one.
    Example
    Output of a list of all flights from Frankfurt to New York between September 10th and 20th, 2001 that are not sold out:
    DATA: DATE   LIKE SFLIGHT-FLDATE,
          CARRID LIKE SFLIGHT-CARRID,
          CONNID LIKE SFLIGHT-CONNID.
    SELECT FCARRID FCONNID F~FLDATE
        INTO (CARRID, CONNID, DATE)
        FROM SFLIGHT AS F INNER JOIN SPFLI AS P
               ON FCARRID = PCARRID
        WHERE FCONNID = PCONNID
          AND P~CITYFROM = 'FRANKFURT'
          AND P~CITYTO   = 'NEW YORK'
          AND F~FLDATE BETWEEN '20010910' AND '20010920'
          AND FSEATSOCC < FSEATSMAX.
      WRITE: / DATE, CARRID, CONNID.
    ENDSELECT.
    Note
    Since not all of the database systems supported by SAP use the standard syntax for ON conditions, the syntax has been restricted. It only allows those joins that produce the same results on all of the supported database systems:
    Only a table or view may appear to the right of the JOIN operator, not another join expression.
    Only AND is possible in the ON condition as a logical operator.
    Each comparison in the ON condition must contain a field from the right-hand table.
    If an outer join occurs in the FROM clause, all the ON conditions must contain at least one "real" JOIN condition (a condition that contains a field from tabref1 amd a field from tabref2.
    Note
    In some cases, '*' may be specified in the SELECT clause, and an internal table or work area is entered into the INTO clause (instead of a list of fields). If so, the fields are written to the target area from left to right in the order in which the tables appear in the FROM clause, according to the structure of each table work area. There can then be gaps between table work areas if you use an Alignment Request. For this reason, you should define the target work area with reference to the types of the database tables, not simply by counting the total number of fields. For an example, see below:
    Variant 3
    ... FROM tabref1 LEFT [OUTER] JOIN tabref2 ON cond
    Effect
    Selects the data from the transparent database tables and/or views specified in tabref1 and tabref2. tabref1 und tabref2 both have either the same form as in variant 1 or are themselves join expressions. The keyword OUTER can be omitted. The database tables or views specified in tabref1 and tabref2 must be recognized by the ABAP-Dictionary.
    In order to determine the result of a SELECT command where the FROM clause contains a left outer join, the database system creates a temporary table containing the lines that meet the ON condition. The remaining fields from the left-hand table (tabref1) are then added to this table, and their corresponding fields from the right-hand table are filled with ZERO values. The system then applies the WHERE condition to the table.
    Left outer join between table 1 and table 2 where column D in both tables set the join condition:
    Table 1                      Table 2
    A
    B
    C
    D
    D
    E
    F
    G
    H
    a1
    b1
    c1
    1
    1
    e1
    f1
    g1
    h1
    a2
    b2
    c2
    1
    3
    e2
    f2
    g2
    h2
    a3
    b3
    c3
    2
    4
    e3
    f3
    g3
    h3
    a4
    b4
    c4
    3
    |--|||--|
        Left Outer Join
        |--||||||||--|
        | A  | B  | C  | D  | D  | E  | F  | G  | H  |
        |--||||||||--|
        | a1 | b1 | c1 | 1  | 1  | e1 | f1 | g1 | h1 |
        | a2 | b2 | c2 | 1  | 1  | e1 | f1 | g1 | h1 |
        | a3 | b3 | c3 | 2  |NULL|NULL|NULL|NULL|NULL|
        | a4 | b4 | c4 | 3  | 3  | e2 | f2 | g2 | h2 |
        |--||||||||--|
    Regards
    Prabhu

  • Generic connectivity to Sybase and outer join problem

    I have a need to query records from a Sybase database running on Linux
    (32-bit) and am using Oracle 10.2.0.3 with generic connectivity (no
    specific heterogeneous service/transparent gateway for Sybase on Linux, that I see). We have installed
    an ODBC driver on the Oracle server and can query the Sybase database
    without difficulty except for outer joins.
    I have tried using both the Oracle syntax and the ANSI syntax. Both
    return results that are consistent with using an inner join. The ANSI
    query, run directly against the Sybase database returns the correct
    data (of course, removing the database link syntax).
    I was looking into the possibility of using dbms_hs_passthrough, but
    it does not appear to be part of the generic connectivity.
    Is there a better/right way of doing this? Aren't outer joins supported?
    Thanks,
    Vince

    As a followup, I did get dbms_hs_passthrough working and am able to get the correct data back. However, I would like to leave this as a backup.
    Aren't outer joins supported in the generic connectivity?
    Vince

  • Inner join and outer  join in infosets

    hi everyone,
    i have a doubt in infosets...
    when and why we use inner and outer joins(right outer join and left outer join) for infoset
    please give a real time scenario........
    Thanks in advance.
    Bye.

    Hello,
    Inner join:
    For example, the requirement is to show all sales documents where you have delivery exists. In this case, you join both sales ods and delivery ods in a infoset as inner join. This will match the record against the reference documents and pull only matched records.  
    Outer Join:
    Suppose you want to pull all billing/invoice details along with their FI documents related data in a report. Assume that always there might be a situation that invoice exists but not posted to FI, however, you want to have all billing documents details either it has FI document or not. In this case, you link both Billing data and FI document data in a outer join.  This will pull all invoices data either FI document exists or not.   Other words, you want to show one side of data always but adding additional details from differenent source if data exists.
    Hope, it clarifies your doubt. Let me know if any questions.
    Thanks
    Viswa

  • Inner join and outer join

    hi friends,
    how to use inner join and outer join methods in abap. pls explain

    you have to code them
    Seriously, I suggest you take an ABAP class, it's out of the scope of this forum to tech you how to program joins.
    Markus

  • Query By Example and LOV

    Hi all,
    I need to do query by example and let the user choose from the LOV before executing the query. I want the user to click on the button that will make the form enter the query mode and then lauch the LOV automatically. I tried to make LOV automatic display on but it would result the LOV to be display again after I execute the query.
    Thanks in advance for your help.

    Write a trigger that openes the LOV using show_lov builtin.
    Then use the value that is returned in a set_block_property('block',DEFAULT_WHERE...)
    builtin. and then issue an execute_query.
    you then don't need to go into enter query mode.
    (If you return the LOV value to a field you might want to clear the block before you execute query or you'll get asked to save your changes.

  • Performance Tunning - Connect By and Outer Join Used - Urgent

    Hi,
    I have written a query with the outer join and connect by prior since to establish the parent child relation ship.
    All the tables having 2 lakhs record but the final result set is 20 thousand rows.
    The query is taking 5 minutes to complete the execution. How could i improve the performance.
    The query is
    SELECT
    'ABC' hrchy_id,
    SUBSTR(c.abc_cd,1,1) ,
    a.org_no bu_node_id,
    SUBSTR(d.abc_cd,1,1) ,
    a.prnt_org ,
    level hrchy_lvl_nb,
    a.eff_from_dt,
    a.eff_to_dt,
    FROM ((parent a INNER JOIN f_org b ON (a.org_no = b.org_no))
         left join org c on ( (a.org_no = (c.abc_cd)))
    ) left join org d on ( (a.prnt_org = d.abc_cd)))
    WHERE a.co_cd ='000'
    START with a.prnt_org = '0'
    CONNECT BY a.prnt_org = PRIOR a.org_no
    ORDER SIBLINGS BY a.org_no;
    Please suggest any idea or commands to improve the performance.
    Thanks in advance.

    Can you provide the structure of tree based SQL.
    Thanks in advance.But you have it already :-)
    SELECT
    'ABC' hrchy_id,
    a.org_no bu_node_id,
    a.prnt_org ,
    level hrchy_lvl_nb,
    a.eff_from_dt,
    a.eff_to_dt,
    FROM parent a WHERE a.co_cd ='000'
    START with a.prnt_org = '0'
    CONNECT BY a.prnt_org = PRIOR a.org_no
    ORDER SIBLINGS BY a.org_no;Regards
    Dmytro

  • Joins and Outer joins

    Sorry for being a newbie!
    I was using JPQL to grab data from one table that requires an outer join to another table.
    I thought I could do this:
    select a.f1,a.f2,b.f3 from A a LEFT OUTER JOIN B b
    where a.id = b.id and
    a.match = b.match;
    A and B are entities and I need to join with two columns. Can someone please tell me what I'm doing wrong.
    Thanks!

    osubb wrote:
    Sorry for being a newbie!Everybody starts out with less knowledge than others, no need to apologize for that.
    >
    I was using JPQL to grab data from one table that requires an outer join to another table.Okay.
    >
    I thought I could do this:
    select a.f1,a.f2,b.f3 from A a LEFT OUTER JOIN B b
    where a.id = b.id and
    a.match = b.match;
    A and B are entities and I need to join with two columns. Can someone please tell me what I'm doing wrong.
    Thanks!Generally you do these kind of mappings through the Entities. For example, you can have a OneToMany / ManyToOne mapping between the two entities. Check out the Toplink reference guide for some examples on how to do this:
    [http://www.oracle.com/technology/products/ias/toplink/jpa/resources/toplink-jpa-annotations.html#ManyToOne|toplink JPA annotations reference]
    Even if you are not using Toplink, this is the same for all persistence providers.

  • JDBC and outer joins

    What is the correct syntax for an outer join using JDBC. A statement such as the following is returned with an illegal char. error:
    select x.value, y.value from x_table x, y_table y
    where x.id = y.id(+);     
    I'm using oracle 8i and the thin client driver.
    Thanks

    osubb wrote:
    Sorry for being a newbie!Everybody starts out with less knowledge than others, no need to apologize for that.
    >
    I was using JPQL to grab data from one table that requires an outer join to another table.Okay.
    >
    I thought I could do this:
    select a.f1,a.f2,b.f3 from A a LEFT OUTER JOIN B b
    where a.id = b.id and
    a.match = b.match;
    A and B are entities and I need to join with two columns. Can someone please tell me what I'm doing wrong.
    Thanks!Generally you do these kind of mappings through the Entities. For example, you can have a OneToMany / ManyToOne mapping between the two entities. Check out the Toplink reference guide for some examples on how to do this:
    [http://www.oracle.com/technology/products/ias/toplink/jpa/resources/toplink-jpa-annotations.html#ManyToOne|toplink JPA annotations reference]
    Even if you are not using Toplink, this is the same for all persistence providers.

  • Query builder bug in outer joins ?

    I understood that if you were joining two tables A and B, the following was a
    LEFT OUTER JOIN
    SELECT A.COL, B.COL
    FROM A, B
    WHERE A.ID = B.ID (+)
    ie: a LEFT outer join has the (+) on the Right-hand table.
    However, query builder puts the (+) on the Left-hand table.
    Same for a RIGHT outer join - I think the (+) should be on the Left-hand table, but query builder puts it on the Right-hand table.
    Cheers,
    Andrew
    (running Version 2.1.0.00.39)

    Hi Andrew,
    I just played a little with the query builder and created a join between two of my tables:
    PROJECTS and ACTIVITIES, linked via KCC.
    When I create a left outer join in query builder, I get the following result:
    select     "PROJECTS"."KCC" as "KCC"
    from     "ACTIVITIES" "ACTIVITIES",
         "PROJECTS" "PROJECTS"
    where "PROJECTS"."KCC"(+) ="ACTIVITIES"."KCC"
    Which is correct: Left refers to the first table in the from clause (ACTIVITIES) and places the (+) on the other table!
    Left and right refers to the order of tables in the from clause, not in the where clause. Query builder sorts the tables in FROM alphabetically, maybe this is differing from the graphical order in query builder.
    Regards
    Alex

  • Mixed Inner and Outer Joins in One SQL

    Oracle 11g.
    There are four tables:
    T1 (primary key: pk_t1)
    T2 (primary key: pk_t2, foreign key fk_t2_ref_t1)
    T3 (primary key: pk_t3, foreign key fk_t3_ref_t2)
    T4 (primary key: pk_t4, foreign key fk_t4_ref_t3)
    This is what I want to do:  inner join among T1, T2, and T3, then outer join with T4 (T4 may contain the null rows).  Something like:
    procedure sp_test(
    p_where_clause)
    select *
    from
         T1 inner joint T2 on pk_t1 = fk_t2_ref_t1
        inner joint T3 on pk_t2 = fk_t3_ref_t2
        left outer join T3 on pk_t3 = fk_t4_ref_t3
    where  p_where_clause;
    OR
    select *
    from
         T4 right outer join T3 on pk_t3 = fk_t4_ref_t3
        inner joint T2 on pk_t2 = fk_t3_ref_t2
        inner joint T1 on pk_t1 = fk_t2_ref_t1
    where  p_where_clause;
    Please help me to write a correct SQL to achieve this goal.
    Thanks

    Hi,
    Whenever you have a problem, please post a little sample data (CREATE TABLE and INSERT statements, relevant columns only) from all tables involved, so that the people who want to help you can re-create the problem and test their ideas.
    Also post the results you want from that data, and an explanation of how you get those results from that data, with specific examples.
    Always say which version of Oracle you're using (for example, 11.2.0.2.0).
    See the forum FAQ: https://forums.oracle.com/message/9362002
    I'm guessing that your first attempt
    select *
    from
         T1 inner joint T2 on pk_t1 = fk_t2_ref_t1
        inner joint T3 on pk_t2 = fk_t3_ref_t2
        left outer join T3 on pk_t3 = fk_t4_ref_t3
    where  p_where_clause;
    was close; only you want to include t4 rather than a second copy of t3, and you need to spell JOIN correctly:
    SELECT  *        -- You'll probably want to specify columns
    FROM             t1
    INNER JOIN       t2     ON  pk_t1 = fk_t2_ref_t1
    INNER JOIN       t3     ON  pk_t2 = fk_t3_ref_t2
    LEFT OUTER JOIN  t4     ON  pk_t3 = fk_t4_ref_t3
    WHERE  ...

  • How to merge 3 different query results using full outer join?

     Hi all This is my my query for 2 results
    with t1 as (
    select trans.crAcc_id,trans.cr_amt,row_number() over (order by trans.head_id) rn from Acttrans trans,
     Acttranhead head where trans.head_id in(select link_id from acttrans where head_id=12) and trans.crAcc_id!=0
     and head.head_id=trans.head_id
    t2 as (
    select trans.drAcc_id,trans.dr_amt,head.[Vouc_No],head.[Vouc_Date] ,head.[Check_No],head.[Check_Date],head.[stat],row_number() over (order by trans.head_id) rn from Acttrans trans,
     Acttranhead head where trans.head_id=12 and trans.drAcc_id!=0
     and head.head_id=trans.head_id
     select t1.crAcc_id, t1.cr_amt,t2.[Vouc_No],t2.[Vouc_Date] ,t2.[Check_No],t2.[Check_Date],t2.[stat],t2.drAcc_id,t2.dr_amt from t1
      full outer join t2 on t1.rn = t2.rn
    Query 3: SELECT [CrAcc_Id]  FROM [KSSDATA].[dbo].[ActTrans] where head_id=12 and crAcc_id!=0
    and i want to add Query3 result to the ABOVE RESULT but i am unable add third result using full outer join
    Thanks
    Balu D

    >>>but i am unable add third result using full outer join
    Do you get the error or wrong result?
    Best Regards,Uri Dimant SQL Server MVP,
    http://sqlblog.com/blogs/uri_dimant/
    MS SQL optimization: MS SQL Development and Optimization
    MS SQL Consulting:
    Large scale of database and data cleansing
    Remote DBA Services:
    Improves MS SQL Database Performance
    SQL Server Integration Services:
    Business Intelligence

  • Equi Join and Outer join using outer keyword

    Hi,
    First lets take the create statment for scott schema.
    create table scott.emp_details(empno number, bonus_date date);
    Insert Into Scott.Emp_Details Values(7369, To_Date('01-jan-2013'));
    Insert Into Scott.Emp_Details Values(7499, To_Date('05-jan-2013'));
    Insert Into Scott.Emp_Details Values(7521, To_Date('10-jan-2013'));
    Insert Into Scott.Emp_Details Values(7566, To_Date('01-feb-2013'));
    Insert Into Scott.Emp_Details Values(7654, To_Date('05-feb-2013'));
    commit;lets also consider the basic scott.emp and scott.dept tables
    Now I would like to equi join emp table deptno col with dept table deptno col and left outer join emp table hiredate with emp_details bonus_date and empno col in emp_details can be joined(Equi Join) with empno col of emp table if needed .The outer join has to be placed using the keyword (left/right)outer join
    The select statement can have all the detials of emp table .The requirement may look weird but we have some such requirement.
    Please suggest

    Hi,
    sri wrote:
    Hi,
    First lets take the create statment for scott schema.
    create table scott.emp_details(empno number, bonus_date date);
    Insert Into Scott.Emp_Details Values(7369, To_Date('01-jan-2013'));
    Insert Into Scott.Emp_Details Values(7499, To_Date('05-jan-2013'));
    Insert Into Scott.Emp_Details Values(7521, To_Date('10-jan-2013'));
    Insert Into Scott.Emp_Details Values(7566, To_Date('01-feb-2013'));
    Insert Into Scott.Emp_Details Values(7654, To_Date('05-feb-2013'));
    commit;
    It's best not to create your own tables in Oracle-supplied schemas, such as SCOTT. Use your own schema for your own tables.
    lets also consider the basic scott.emp and scott.dept tablesI see; you're using the standard scott,emp and scott.dept tables, plus the emp_details table you posted above.
    Now I would like to equi join emp table deptno col with dept table deptno col and left outer join emp table hiredate with emp_details bonus_date and empno col in emp_details can be joined(Equi Join) with empno col of emp table if needed .The outer join has to be placed using the keyword (left/right)outer join
    The select statement can have all the detials of emp table .The requirement may look weird but we have some such requirement.
    Please suggestThanks for posting the sample data. Don't forget to post the exact output you want from that sample data.
    Do you want something like this?
    `    EMPNO ENAME          DEPTNO DNAME          BONUS_DAT
          7369 SMITH              20 RESEARCH       01-JAN-13
          7499 ALLEN              30 SALES          05-JAN-13
          7521 WARD               30 SALES          10-JAN-13
          7566 JONES              20 RESEARCH       01-FEB-13
          7654 MARTIN             30 SALES          05-FEB-13
          7698 BLAKE              30 SALES
          7782 CLARK              10 ACCOUNTING
          7788 SCOTT              20 RESEARCH
          7839 KING               10 ACCOUNTING
          7844 TURNER             30 SALES
          7876 ADAMS              20 RESEARCH
          7900 JAMES              30 SALES
          7902 FORD               20 RESEARCH
          7934 MILLER             10 ACCOUNTING
                                  40 OPERATIONSIf so, here's one way to do it:
    SELECT       e.empno, e.ename     -- or whatever columns you want
    ,       d.deptno, d.dname     -- or whatever columns you want
    ,       ed.bonus_date
    FROM           scott.dept  d
    LEFT OUTER JOIN      scott.emp   e   ON  e.deptno     = d.deptno
    LEFT OUTER JOIN      emp_details ed      ON  ed.empno     = e.empno
    ORDER BY  e.empno
    ;

  • Workspace Manager 10.1.0.4 and Outer Joins

    We experience the following Problem:
    We have a schema containing several Tables, one of them includes a SDO_GEOMETRY column (some Tables are about 2 million rows in size). We have to use some outer - joins in our statements, unfortunately the database - model is a generic one.
    The outer joins seem to work fine when the schema is not version - enabled, the performance is ok. As soon as we version - enable the schema, the explain plans for the statements with outer joins radically change, there are several "full table access" - paths for large tables (including the one with the geometry column).
    Statistics are up to date (executed dbms_stats.gather_schema_stats() with cascade => true).
    Any Ideas?
    cheers,
    Nothi

    Hi Ben,
    Thanx for your fast answer!
    This is the Statement:
    SELECT ress_exemp.id as ress_exemp_id, ress_exemp.ress_klasse_id as
    ress_exemp_ress_klasse_id, ress_exemp.ress_standort_id as
    ress_exemp_ress_standort_id, ress_exemp.ortsnetz_id as
    ress_exemp_ortsnetz_id, ress_exemp.asb_id as ress_exemp_asb_id,
    ress_exemp.netzbezirk_id as ress_exemp_netzbezirk_id,
    TO_CHAR(ress_exemp.gueltig_von,'dd.mm.yyyy hh24:mi:ss') as
    ress_exemp_gueltig_von, TO_CHAR(ress_exemp.gueltig_bis,'dd.mm.yyyy
    hh24:mi:ss') as ress_exemp_gueltig_bis, ress_exemp.gf_aktion as
    ress_exemp_gf_aktion, ress_exemp.gdv as ress_exemp_gdv, ress_exemp.sp as
    ress_exemp_sp, ress_exemp.status as ress_exemp_status, ress_exemp.banr as
    ress_exemp_banr, ress_exemp.bezeichnung as ress_exemp_bezeichnung,
    ress_exemp.parent_id as ress_exemp_parent_id , GEHAEUSE.*, GEOMETRIE.*,
    NETZBEZIRK.*, LOKATION.ZEILE_1, ress_standort.id as rs_id,
    ress_standort.lokation_id as rs_lokation_id, ress_standort.geometrie_id as
    rs_geometrie_id, ress_standort.relative_position as rs_rel_position,
    ress_standort.verortung as rs_verortung, ress_standort.datenqu as
    rs_datenqu, ress_standort.name_datenqu as rs_name_datenqu ,
    cast(multiset(select * from RESS_EXEMP_GIS where ress_exemp_id=ress_exemp.id) as TYPE_RESS_EXEMP_GIS_LISTE) as Darstellung
    from ress_exemp, GEHAEUSE, RESS_STANDORT, GEOMETRIE, NETZBEZIRK, LOKATION
    WHERE ress_exemp.id = GEHAEUSE.id
    AND ress_exemp.netzbezirk_id=NETZBEZIRK.id(+)
    AND ress_exemp.ress_standort_id=ress_standort.id(+)
    AND ress_standort.geometrie_id = geometrie.id(+)
    AND ress_standort.lokation_id = lokation.id(+)
    AND ress_exemp.id in (select /*+ cardinality(nlist 10) */ * from TABLE(cast(:b_ids as TYPE_NUMBER_LISTE)) nlist)
    This is the plan (from trace) fro the above sql, not version enabled:
    Rows Row Source Operation
    1 NESTED LOOPS OUTER (cr=16 pr=5 pw=0 time=27663 us)
    1 NESTED LOOPS OUTER (cr=12 pr=2 pw=0 time=15850 us)
    1 NESTED LOOPS OUTER (cr=12 pr=2 pw=0 time=15828 us)
    1 NESTED LOOPS OUTER (cr=8 pr=1 pw=0 time=7964 us)
    1 NESTED LOOPS (cr=8 pr=1 pw=0 time=7945 us)
    1 NESTED LOOPS (cr=4 pr=0 pw=0 time=123 us)
    1 SORT UNIQUE (cr=0 pr=0 pw=0 time=67 us)
    1 COLLECTION ITERATOR PICKLER FETCH (cr=0 pr=0 pw=0 time=18 us)
    1 TABLE ACCESS BY INDEX ROWID RESS_EXEMP (cr=4 pr=0 pw=0 time=50 us)
    1 INDEX UNIQUE SCAN PK_RESS_EXEMP (cr=3 pr=0 pw=0 time=29 us)(object id 160705)
    1 TABLE ACCESS BY INDEX ROWID GEHAEUSE (cr=4 pr=1 pw=0 time=7811 us)
    1 INDEX UNIQUE SCAN PK_GEHAEUSE (cr=3 pr=0 pw=0 time=13 us)(object id 160765)
    0 TABLE ACCESS BY INDEX ROWID NETZBEZIRK (cr=0 pr=0 pw=0 time=10 us)
    0 INDEX UNIQUE SCAN PK_NETZBEZIRK (cr=0 pr=0 pw=0 time=5 us)(object id 160771)
    1 TABLE ACCESS BY INDEX ROWID RESS_STANDORT (cr=4 pr=1 pw=0 time=7848 us)
    1 INDEX UNIQUE SCAN PK_RESS_STANDORT (cr=3 pr=0 pw=0 time=14 us)(object id 160701)
    0 TABLE ACCESS BY INDEX ROWID GEOMETRIE (cr=0 pr=0 pw=0 time=9 us)
    0 INDEX UNIQUE SCAN PK_GEOMETRIE (cr=0 pr=0 pw=0 time=4 us)(object id 160694)
    1 TABLE ACCESS BY INDEX ROWID LOKATION (cr=4 pr=3 pw=0 time=11838 us)
    1 INDEX UNIQUE SCAN PK_LOKATION (cr=3 pr=2 pw=0 time=7320 us)(object id 160692)
    Takes about 0.05 seconds to execute.
    Plan (from trace) after version - enabling and gather_schema_stats:
    Rows Row Source Operation
    1 FILTER (cr=249798 pr=313734 pw=84427 time=192750716 us)
    1 HASH JOIN RIGHT SEMI (cr=249798 pr=313734 pw=84427 time=240955926 us)
    1 COLLECTION ITERATOR PICKLER FETCH (cr=0 pr=0 pw=0 time=21 us)
    688292 HASH JOIN RIGHT OUTER (cr=249798 pr=313734 pw=84427 time=285035131 us)
    21610 VIEW (cr=235 pr=0 pw=0 time=172975 us)
    21610 FILTER (cr=235 pr=0 pw=0 time=108142 us)
    21610 TABLE ACCESS FULL NETZBEZIRK_LT (cr=235 pr=0 pw=0 time=43305 us)
    0 FILTER (cr=0 pr=0 pw=0 time=0 us)
    0 INDEX RANGE SCAN WM$NEXTVER_TABLE_NV_INDX (cr=0 pr=0 pw=0 time=0 us)(object id 9186)
    0 TABLE ACCESS BY INDEX ROWID WM$WORKSPACES_TABLE (cr=0 pr=0 pw=0 time=0 us)
    0 INDEX UNIQUE SCAN WM$WORKSPACES_PK (cr=0 pr=0 pw=0 time=0 us)(object id 8893)
    0 TABLE ACCESS BY INDEX ROWID WM$WORKSPACES_TABLE (cr=0 pr=0 pw=0 time=0 us)
    0 INDEX UNIQUE SCAN WM$WORKSPACES_PK (cr=0 pr=0 pw=0 time=0 us)(object id 8893)
    0 TABLE ACCESS BY INDEX ROWID WM$VERSION_TABLE (cr=0 pr=0 pw=0 time=0 us)
    0 INDEX UNIQUE SCAN WM$VERSION_PK (cr=0 pr=0 pw=0 time=0 us)(object id 8896)
    0 VIEW (cr=0 pr=0 pw=0 time=0 us)
    0 UNION-ALL (cr=0 pr=0 pw=0 time=0 us)
    0 FILTER (cr=0 pr=0 pw=0 time=0 us)
    0 INDEX UNIQUE SCAN MODIFIED_TABLES_PK (cr=0 pr=0 pw=0 time=0 us)(object id 8917)
    0 TABLE ACCESS BY INDEX ROWID WM$WORKSPACES_TABLE (cr=0 pr=0 pw=0 time=0 us)
    0 INDEX UNIQUE SCAN WM$WORKSPACES_PK (cr=0 pr=0 pw=0 time=0 us)(object id 8893)
    0 TABLE ACCESS BY INDEX ROWID WM$WORKSPACES_TABLE (cr=0 pr=0 pw=0 time=0 us)
    0 INDEX UNIQUE SCAN WM$WORKSPACES_PK (cr=0 pr=0 pw=0 time=0 us)(object id 8893)
    0 TABLE ACCESS BY INDEX ROWID WM$WORKSPACES_TABLE (cr=0 pr=0 pw=0 time=0 us)
    0 INDEX UNIQUE SCAN WM$WORKSPACES_PK (cr=0 pr=0 pw=0 time=0 us)(object id 8893)
    0 TABLE ACCESS BY INDEX ROWID WM$WORKSPACES_TABLE (cr=0 pr=0 pw=0 time=0 us)
    0 INDEX UNIQUE SCAN WM$WORKSPACES_PK (cr=0 pr=0 pw=0 time=0 us)(object id 8893)
    0 NESTED LOOPS (cr=0 pr=0 pw=0 time=0 us)
    0 TABLE ACCESS BY INDEX ROWID WM$VERSION_TABLE (cr=0 pr=0 pw=0 time=0 us)
    0 INDEX RANGE SCAN WM$VERSION_PK (cr=0 pr=0 pw=0 time=0 us)(object id 8896)
    0 INDEX UNIQUE SCAN MODIFIED_TABLES_PK (cr=0 pr=0 pw=0 time=0 us)(object id 8917)
    688292 HASH JOIN RIGHT OUTER (cr=249563 pr=313734 pw=84427 time=279469137 us)
    515484 VIEW (cr=19385 pr=0 pw=0 time=6701465 us)
    515484 FILTER (cr=5140 pr=0 pw=0 time=2577569 us)
    515506 TABLE ACCESS FULL GEOMETRIE_LT (cr=5102 pr=0 pw=0 time=1546659 us)
    0 FILTER (cr=3 pr=0 pw=0 time=115 us)
    1 INDEX RANGE SCAN WM$NEXTVER_TABLE_NV_INDX (cr=2 pr=0 pw=0 time=38 us)(object id 9186)
    0 TABLE ACCESS BY INDEX ROWID WM$WORKSPACES_TABLE (cr=0 pr=0 pw=0 time=0 us)
    0 INDEX UNIQUE SCAN WM$WORKSPACES_PK (cr=0 pr=0 pw=0 time=0 us)(object id 8893)
    0 TABLE ACCESS BY INDEX ROWID WM$WORKSPACES_TABLE (cr=0 pr=0 pw=0 time=0 us)
    0 INDEX UNIQUE SCAN WM$WORKSPACES_PK (cr=0 pr=0 pw=0 time=0 us)(object id 8893)
    0 TABLE ACCESS BY INDEX ROWID WM$VERSION_TABLE (cr=1 pr=0 pw=0 time=25 us)
    0 INDEX UNIQUE SCAN WM$VERSION_PK (cr=1 pr=0 pw=0 time=16 us)(object id 8896)
    1 VIEW (cr=35 pr=0 pw=0 time=958 us)
    1 UNION-ALL (cr=35 pr=0 pw=0 time=894 us)
    1 FILTER (cr=24 pr=0 pw=0 time=378 us)
    1 INDEX UNIQUE SCAN MODIFIED_TABLES_PK (cr=22 pr=0 pw=0 time=263 us)(object id 8917)
    2 TABLE ACCESS BY INDEX ROWID WM$WORKSPACES_TABLE (cr=4 pr=0 pw=0 time=62 us)
    2 INDEX UNIQUE SCAN WM$WORKSPACES_PK (cr=2 pr=0 pw=0 time=24 us)(object id 8893)
    0 TABLE ACCESS BY INDEX ROWID WM$WORKSPACES_TABLE (cr=0 pr=0 pw=0 time=0 us)
    0 INDEX UNIQUE SCAN WM$WORKSPACES_PK (cr=0 pr=0 pw=0 time=0 us)(object id 8893)
    2 TABLE ACCESS BY INDEX ROWID WM$WORKSPACES_TABLE (cr=4 pr=0 pw=0 time=62 us)
    2 INDEX UNIQUE SCAN WM$WORKSPACES_PK (cr=2 pr=0 pw=0 time=24 us)(object id 8893)
    0 TABLE ACCESS BY INDEX ROWID WM$WORKSPACES_TABLE (cr=0 pr=0 pw=0 time=0 us)
    0 INDEX UNIQUE SCAN WM$WORKSPACES_PK (cr=0 pr=0 pw=0 time=0 us)(object id 8893)
    0 NESTED LOOPS (cr=11 pr=0 pw=0 time=290 us)
    0 TABLE ACCESS BY INDEX ROWID WM$VERSION_TABLE (cr=11 pr=0 pw=0 time=225 us)
    0 INDEX RANGE SCAN WM$VERSION_PK (cr=11 pr=0 pw=0 time=151 us)(object id 8896)
    0 INDEX UNIQUE SCAN MODIFIED_TABLES_PK (cr=0 pr=0 pw=0 time=0 us)(object id 8917)
    672794 HASH JOIN OUTER (cr=230178 pr=295905 pw=67004 time=197075574 us)
    672794 HASH JOIN RIGHT OUTER (cr=40108 pr=77885 pw=38990 time=92436750 us)
    690002 VIEW (cr=6208 pr=6139 pw=0 time=5649517 us)
    690002 FILTER (cr=6208 pr=6139 pw=0 time=4269507 us)
    690021 TABLE ACCESS FULL RESS_STANDORT_LT (cr=6175 pr=6139 pw=0 time=2199551 us)
    0 FILTER (cr=0 pr=0 pw=0 time=0 us)
    0 INDEX RANGE SCAN WM$NEXTVER_TABLE_NV_INDX (cr=0 pr=0 pw=0 time=0 us)(object id 9186)
    0 TABLE ACCESS BY INDEX ROWID WM$WORKSPACES_TABLE (cr=0 pr=0 pw=0 time=0 us)
    0 INDEX UNIQUE SCAN WM$WORKSPACES_PK (cr=0 pr=0 pw=0 time=0 us)(object id 8893)
    0 TABLE ACCESS BY INDEX ROWID WM$WORKSPACES_TABLE (cr=0 pr=0 pw=0 time=0 us)
    0 INDEX UNIQUE SCAN WM$WORKSPACES_PK (cr=0 pr=0 pw=0 time=0 us)(object id 8893)
    0 TABLE ACCESS BY INDEX ROWID WM$VERSION_TABLE (cr=0 pr=0 pw=0 time=0 us)
    0 INDEX UNIQUE SCAN WM$VERSION_PK (cr=0 pr=0 pw=0 time=0 us)(object id 8896)
    0 VIEW (cr=33 pr=0 pw=0 time=774 us)
    0 UNION-ALL (cr=33 pr=0 pw=0 time=719 us)
    0 FILTER (cr=22 pr=0 pw=0 time=268 us)
    0 INDEX UNIQUE SCAN MODIFIED_TABLES_PK (cr=20 pr=0 pw=0 time=144 us)(object id 8917)
    2 TABLE ACCESS BY INDEX ROWID WM$WORKSPACES_TABLE (cr=4 pr=0 pw=0 time=80 us)
    2 INDEX UNIQUE SCAN WM$WORKSPACES_PK (cr=2 pr=0 pw=0 time=44 us)(object id 8893)
    0 TABLE ACCESS BY INDEX ROWID WM$WORKSPACES_TABLE (cr=0 pr=0 pw=0 time=0 us)
    0 INDEX UNIQUE SCAN WM$WORKSPACES_PK (cr=0 pr=0 pw=0 time=0 us)(object id 8893)
    2 TABLE ACCESS BY INDEX ROWID WM$WORKSPACES_TABLE (cr=4 pr=0 pw=0 time=80 us)
    2 INDEX UNIQUE SCAN WM$WORKSPACES_PK (cr=2 pr=0 pw=0 time=44 us)(object id 8893)
    0 TABLE ACCESS BY INDEX ROWID WM$WORKSPACES_TABLE (cr=0 pr=0 pw=0 time=0 us)
    0 INDEX UNIQUE SCAN WM$WORKSPACES_PK (cr=0 pr=0 pw=0 time=0 us)(object id 8893)
    0 NESTED LOOPS (cr=11 pr=0 pw=0 time=236 us)
    0 TABLE ACCESS BY INDEX ROWID WM$VERSION_TABLE (cr=11 pr=0 pw=0 time=178 us)
    0 INDEX RANGE SCAN WM$VERSION_PK (cr=11 pr=0 pw=0 time=115 us)(object id 8896)
    0 INDEX UNIQUE SCAN MODIFIED_TABLES_PK (cr=0 pr=0 pw=0 time=0 us)(object id 8917)
    672794 HASH JOIN (cr=33900 pr=55205 pw=22449 time=60265506 us)
    672792 TABLE ACCESS FULL GEHAEUSE_LT (cr=7219 pr=7206 pw=0 time=10207784 us)
    2331315 TABLE ACCESS FULL RESS_EXEMP_LT (cr=26681 pr=25550 pw=0 time=35088531 us)
    6289491 VIEW (cr=190070 pr=190006 pw=0 time=94568502 us)
    6289491 FILTER (cr=190070 pr=190006 pw=0 time=81989512 us)
    6289491 TABLE ACCESS FULL LOKATION_LT (cr=190070 pr=190006 pw=0 time=63121025 us)
    0 FILTER (cr=0 pr=0 pw=0 time=0 us)
    0 INDEX RANGE SCAN WM$NEXTVER_TABLE_NV_INDX (cr=0 pr=0 pw=0 time=0 us)(object id 9186)
    0 TABLE ACCESS BY INDEX ROWID WM$WORKSPACES_TABLE (cr=0 pr=0 pw=0 time=0 us)
    0 INDEX UNIQUE SCAN WM$WORKSPACES_PK (cr=0 pr=0 pw=0 time=0 us)(object id 8893)
    0 TABLE ACCESS BY INDEX ROWID WM$WORKSPACES_TABLE (cr=0 pr=0 pw=0 time=0 us)
    0 INDEX UNIQUE SCAN WM$WORKSPACES_PK (cr=0 pr=0 pw=0 time=0 us)(object id 8893)
    0 TABLE ACCESS BY INDEX ROWID WM$VERSION_TABLE (cr=0 pr=0 pw=0 time=0 us)
    0 INDEX UNIQUE SCAN WM$VERSION_PK (cr=0 pr=0 pw=0 time=0 us)(object id 8896)
    0 VIEW (cr=0 pr=0 pw=0 time=0 us)
    0 UNION-ALL (cr=0 pr=0 pw=0 time=0 us)
    0 FILTER (cr=0 pr=0 pw=0 time=0 us)
    0 INDEX UNIQUE SCAN MODIFIED_TABLES_PK (cr=0 pr=0 pw=0 time=0 us)(object id 8917)
    0 TABLE ACCESS BY INDEX ROWID WM$WORKSPACES_TABLE (cr=0 pr=0 pw=0 time=0 us)
    0 INDEX UNIQUE SCAN WM$WORKSPACES_PK (cr=0 pr=0 pw=0 time=0 us)(object id 8893)
    0 TABLE ACCESS BY INDEX ROWID WM$WORKSPACES_TABLE (cr=0 pr=0 pw=0 time=0 us)
    0 INDEX UNIQUE SCAN WM$WORKSPACES_PK (cr=0 pr=0 pw=0 time=0 us)(object id 8893)
    0 TABLE ACCESS BY INDEX ROWID WM$WORKSPACES_TABLE (cr=0 pr=0 pw=0 time=0 us)
    0 INDEX UNIQUE SCAN WM$WORKSPACES_PK (cr=0 pr=0 pw=0 time=0 us)(object id 8893)
    0 TABLE ACCESS BY INDEX ROWID WM$WORKSPACES_TABLE (cr=0 pr=0 pw=0 time=0 us)
    0 INDEX UNIQUE SCAN WM$WORKSPACES_PK (cr=0 pr=0 pw=0 time=0 us)(object id 8893)
    0 NESTED LOOPS (cr=0 pr=0 pw=0 time=0 us)
    0 TABLE ACCESS BY INDEX ROWID WM$VERSION_TABLE (cr=0 pr=0 pw=0 time=0 us)
    0 INDEX RANGE SCAN WM$VERSION_PK (cr=0 pr=0 pw=0 time=0 us)(object id 8896)
    0 INDEX UNIQUE SCAN MODIFIED_TABLES_PK (cr=0 pr=0 pw=0 time=0 us)(object id 8917)
    0 FILTER (cr=0 pr=0 pw=0 time=0 us)
    0 INDEX RANGE SCAN WM$NEXTVER_TABLE_NV_INDX (cr=0 pr=0 pw=0 time=0 us)(object id 9186)
    0 TABLE ACCESS BY INDEX ROWID WM$WORKSPACES_TABLE (cr=0 pr=0 pw=0 time=0 us)
    0 INDEX UNIQUE SCAN WM$WORKSPACES_PK (cr=0 pr=0 pw=0 time=0 us)(object id 8893)
    0 TABLE ACCESS BY INDEX ROWID WM$WORKSPACES_TABLE (cr=0 pr=0 pw=0 time=0 us)
    0 INDEX UNIQUE SCAN WM$WORKSPACES_PK (cr=0 pr=0 pw=0 time=0 us)(object id 8893)
    0 TABLE ACCESS BY INDEX ROWID WM$VERSION_TABLE (cr=0 pr=0 pw=0 time=0 us)
    0 INDEX UNIQUE SCAN WM$VERSION_PK (cr=0 pr=0 pw=0 time=0 us)(object id 8896)
    0 VIEW (cr=0 pr=0 pw=0 time=0 us)
    0 UNION-ALL (cr=0 pr=0 pw=0 time=0 us)
    0 FILTER (cr=0 pr=0 pw=0 time=0 us)
    0 INDEX UNIQUE SCAN MODIFIED_TABLES_PK (cr=0 pr=0 pw=0 time=0 us)(object id 8917)
    0 TABLE ACCESS BY INDEX ROWID WM$WORKSPACES_TABLE (cr=0 pr=0 pw=0 time=0 us)
    0 INDEX UNIQUE SCAN WM$WORKSPACES_PK (cr=0 pr=0 pw=0 time=0 us)(object id 8893)
    0 TABLE ACCESS BY INDEX ROWID WM$WORKSPACES_TABLE (cr=0 pr=0 pw=0 time=0 us)
    0 INDEX UNIQUE SCAN WM$WORKSPACES_PK (cr=0 pr=0 pw=0 time=0 us)(object id 8893)
    0 TABLE ACCESS BY INDEX ROWID WM$WORKSPACES_TABLE (cr=0 pr=0 pw=0 time=0 us)
    0 INDEX UNIQUE SCAN WM$WORKSPACES_PK (cr=0 pr=0 pw=0 time=0 us)(object id 8893)
    0 TABLE ACCESS BY INDEX ROWID WM$WORKSPACES_TABLE (cr=0 pr=0 pw=0 time=0 us)
    0 INDEX UNIQUE SCAN WM$WORKSPACES_PK (cr=0 pr=0 pw=0 time=0 us)(object id 8893)
    0 NESTED LOOPS (cr=0 pr=0 pw=0 time=0 us)
    0 TABLE ACCESS BY INDEX ROWID WM$VERSION_TABLE (cr=0 pr=0 pw=0 time=0 us)
    0 INDEX RANGE SCAN WM$VERSION_PK (cr=0 pr=0 pw=0 time=0 us)(object id 8896)
    0 INDEX UNIQUE SCAN MODIFIED_TABLES_PK (cr=0 pr=0 pw=0 time=0 us)(object id 8917)
    0 FILTER (cr=0 pr=0 pw=0 time=0 us)
    0 INDEX RANGE SCAN WM$NEXTVER_TABLE_NV_INDX (cr=0 pr=0 pw=0 time=0 us)(object id 9186)
    0 TABLE ACCESS BY INDEX ROWID WM$WORKSPACES_TABLE (cr=0 pr=0 pw=0 time=0 us)
    0 INDEX UNIQUE SCAN WM$WORKSPACES_PK (cr=0 pr=0 pw=0 time=0 us)(object id 8893)
    0 TABLE ACCESS BY INDEX ROWID WM$WORKSPACES_TABLE (cr=0 pr=0 pw=0 time=0 us)
    0 INDEX UNIQUE SCAN WM$WORKSPACES_PK (cr=0 pr=0 pw=0 time=0 us)(object id 8893)
    0 TABLE ACCESS BY INDEX ROWID WM$VERSION_TABLE (cr=0 pr=0 pw=0 time=0 us)
    0 INDEX UNIQUE SCAN WM$VERSION_PK (cr=0 pr=0 pw=0 time=0 us)(object id 8896)
    0 VIEW (cr=0 pr=0 pw=0 time=0 us)
    0 UNION-ALL (cr=0 pr=0 pw=0 time=0 us)
    0 FILTER (cr=0 pr=0 pw=0 time=0 us)
    0 INDEX UNIQUE SCAN MODIFIED_TABLES_PK (cr=0 pr=0 pw=0 time=0 us)(object id 8917)
    0 TABLE ACCESS BY INDEX ROWID WM$WORKSPACES_TABLE (cr=0 pr=0 pw=0 time=0 us)
    0 INDEX UNIQUE SCAN WM$WORKSPACES_PK (cr=0 pr=0 pw=0 time=0 us)(object id 8893)
    0 TABLE ACCESS BY INDEX ROWID WM$WORKSPACES_TABLE (cr=0 pr=0 pw=0 time=0 us)
    0 INDEX UNIQUE SCAN WM$WORKSPACES_PK (cr=0 pr=0 pw=0 time=0 us)(object id 8893)
    0 TABLE ACCESS BY INDEX ROWID WM$WORKSPACES_TABLE (cr=0 pr=0 pw=0 time=0 us)
    0 INDEX UNIQUE SCAN WM$WORKSPACES_PK (cr=0 pr=0 pw=0 time=0 us)(object id 8893)
    0 TABLE ACCESS BY INDEX ROWID WM$WORKSPACES_TABLE (cr=0 pr=0 pw=0 time=0 us)
    0 INDEX UNIQUE SCAN WM$WORKSPACES_PK (cr=0 pr=0 pw=0 time=0 us)(object id 8893)
    0 NESTED LOOPS (cr=0 pr=0 pw=0 time=0 us)
    0 TABLE ACCESS BY INDEX ROWID WM$VERSION_TABLE (cr=0 pr=0 pw=0 time=0 us)
    0 INDEX RANGE SCAN WM$VERSION_PK (cr=0 pr=0 pw=0 time=0 us)(object id 8896)
    0 INDEX UNIQUE SCAN MODIFIED_TABLES_PK (cr=0 pr=0 pw=0 time=0 us)(object id 8917)
    Rather long, sorry. As you can see, there are several TABLE ACCESS FULL - paths for large tables, causing a lot of user I/O.
    I also tried to use method_opt => 'FOR ALL COLUMNS SIZE 20', unfortunately it dindn't really change the plan.
    Have you got any ideas left?
    thank you for your help, anything can take me further
    regards,
    Nothi

  • Two table sources - inner and outer join

    Hi All - thanks for your help in advance!
    I have factA inner joined to dimA on pkA. However, I also want the ability to see all of dimA even if there's no fact associated. I've aliased dimA to dimB. So, factA is inner joined to dimA (on pkA) and factA is also outer joined to dimB (on pkB).
    I want just one presentable table and one logical table. In my Logical table, I have dimA and dimB as the logical table sources. Both pkA and pkB are columns and each of the other attributes are mapped to both dimA and dimB.
    In my presentation layer, I have all the columns as well as both pkA and pkB. Depending if my analysis has pkA (inner) or pkB (outer), I want to be able to pull all the other attribute columns as well. Right now, even if I have pkB (outer) in the analysis, all the other attribute columns are still null. I don't want to have to have 2 presentation tables (one for inner and another for outer). Is this possible? Or maybe there's a better way to go at it?

    Hi All - thanks for your help in advance!
    I have factA inner joined to dimA on pkA. However, I also want the ability to see all of dimA even if there's no fact associated. I've aliased dimA to dimB. So, factA is inner joined to dimA (on pkA) and factA is also outer joined to dimB (on pkB).
    I want just one presentable table and one logical table. In my Logical table, I have dimA and dimB as the logical table sources. Both pkA and pkB are columns and each of the other attributes are mapped to both dimA and dimB.
    In my presentation layer, I have all the columns as well as both pkA and pkB. Depending if my analysis has pkA (inner) or pkB (outer), I want to be able to pull all the other attribute columns as well. Right now, even if I have pkB (outer) in the analysis, all the other attribute columns are still null. I don't want to have to have 2 presentation tables (one for inner and another for outer). Is this possible? Or maybe there's a better way to go at it?

Maybe you are looking for