ORA-01719: outer join operator (+) not allowed in operand of GOLD or IN

I'm migrating a stored procedure (package) in Oracle 11 g.  The SQL has an outer join, combined with a "GOLD":

Select a.row1, a.row2, b.row3, b.row4, c.row5, c.row6

schema1.table1 a, schema1.table2 b, schema2.table3 c

where

((c.orgunit = a.org (+) and b.newaccount (+) and TO_CHAR(c.createdatetime,'MM/DD/YYYY = c.account and c.feed = 'FOO' ') = TO_CHAR (SYSDATE, ' DD/MM/YYYY'))

or

((c.feed = 'BAR' and c.orgunit = a.org (+) and c.account b.newaccount (+) and TO_CHAR(c.createdatetime,'MM/DD/YYYY =') = TO_CHAR (SYSDATE, ' DD/MM/YYYY'));

The error is:

ORA-01719: outer join operator not allowed in operand of GOLD or IN

* Cause: Outer join appears in a clause or.

* Action: If A and B are predicates, to achieve the effect of (has or B).

I do not understand how to apply the suggested action to my query above.  Can anyone provide a solution or a workaround?

Thank you.

your base table is c, a and b must be attached to the left

Select a.row1, a.row2, b.row3, b.row4, c.row5, c.row6

of schema2.table3 c

Join schema1.table1 left a c.orgunit on = a.org

c.account left join schema1.table2 b = b.newaccount

where c.createdatetime > = trunc (sysdate)

and c.createdatetime<>

and (c.feed = 'FOO' or c.feed = 'BAR');

Tags: Database

Similar Questions

  • ORA-00976: virtual specified or operator not allowed here

    Hello

    We had error after upgrade of GR 11, 2, in the insert statement.

    INSERT INTO SDE_TBL_FLEXTRIMSITROUT

    (BRANCHCD,

    SOURCECD,

    CURRENTNO,

    BATCHNO,

    DEPTCD,

    CTL

    INITIATIONDATE,

    AMOUNT,

    ACCOUNT,

    ACCOUNTBRANCH,

    TXNCD,

    DEBITCREDIT,

    LCYEQUIVALENT,

    EXCHRATE,

    VALUEDATE,

    INSTRUMENTNO,

    RELCUST,

    ADDLTEXT,

    TXNMIS1,

    TXNMIS2,

    TXNMIS3,

    TXNMIS4,

    TXNMIS5,

    TXNMIS6,

    TXNMIS7,

    TXNMIS8,

    TXNMIS9,

    TXNMIS10,

    COMPMIS1,

    COMPMIS2,

    COMPMIS3,

    COMPMIS4,

    COMPMIS5,

    COMPMIS6,

    COMPMIS7,

    COMPMIS8,

    COMPMIS9,

    COMPMIS10,

    COSTCODE1,

    COSTCODE2,

    COSTCODE3,

    COSTCODE4,

    COSTCODE5,

    RELATEDACCOUNT,

    RELATEDREF,

    USERREFERENCE,

    ACCTPOSTOVERWRITE,

    EXCHRATEOVERWRITE,

    VALUEDATEOVERWRITE,

    ACCTBALOVERWRITE,

    ITRREFER,

    RefinanceAmount,

    PROCESSID)

    VALUES

    (vBranchCode,

    cCreateNewTrimsITR_rec. APPLSYS,

    ROWNUM,

    nBatchNo,

    cCreateNewTrimsITR_rec. DEPT,

    vCcy,

    To_date (cCreateNewTrimsITR_rec. HOUR, 'YYYYMMDD'),

    nAmount,

    vAccount,

    vAccountBranch, - added by Sibylle

    vTxnCd,

    cDebitCredit,

    nLcyEquivalent,

    nExchRate,

    To_date (cCreateNewTrimsITR_rec. VALUEDATE, 'YYYYMMDD'),

    vInstrumentNo,

    --'      ' || SUBSTR (cCreateNewTrimsITR_rec. ITRREFER, 2, 11),

    vFlxCntry | cCreateNewTrimsITR_rec. APNO,

    vDesc,

    cCreateNewTrimsITR_rec. TRANSOUC,

    RPAD (' ', 9);

    vExpenseMIS,

    vProductMIS,

    RPAD (' ', 9);

    RPAD (' ', 9);

    RPAD (' ', 9);

    RPAD (' ', 9);

    RPAD (' ', 9);

    RPAD (' ', 9);

    RPAD (' ', 9);

    RPAD (' ', 9);

    RPAD (' ', 9);

    RPAD (' ', 9);

    RPAD (' ', 9);

    RPAD (' ', 9);

    RPAD (' ', 9);

    RPAD (' ', 9);

    RPAD (' ', 9);

    RPAD (' ', 9);

    RPAD (' ', 9);

    RPAD (' ', 9);

    RPAD (' ', 9);

    RPAD (' ', 9);

    RPAD (' ', 9);

    RPAD (' ', 20);

    cCreateNewTrimsITR_rec. THEIRREF,

    RPAD (' ', 16).

    cActPostOverwrite,

    cExchRateOverWrite,

    cValueDateOverWrite,

    cAcctBalOverWrite,

    cCreateNewTrimsITR_rec. ITRREFER,

    cCreateNewTrimsITR_rec. REFIAMOUNT,

    nFlexOutProcessId);

    Error: ORA-00976: specified virtual or operator not allowed here

    According to the audit, which are a problem in GR 11, 2 with insert query using rownum in values.

    Someone knows how to fix this?

    I wonder why you want to use rownum as a value of insertion? It's not really worth doing an insert without a select statement.

    If you want to use it, it would look like

    Insert into t1 (name, row_num_value)

    Select name

    rownum

    the t2;

    But then you can use an order by clause, on the other it would spoil the rownum order. So an important question is, where is the rownum used for?

  • ORA-00976: virtual specified or operator not allowed here - (11g)

    This ora error occurs on one of my test environment.

    ORA-00976: virtual specified or operator not allowed here

    This happens in one of the plsql pkg, which has no compilation errors. and works perfectly well in other environments.

    The only difference I noticed is what error in DB, which is 11g - 11.2.0.3
    and other environments that are in good shape is 10g - 10.2.0.5

    Overall of the function where the error is, there is one thing which I suspect (but not sure)
    It is CONNECT BY LEVEL, is used in a query. This could be a problem in 11g?
    If not, any help / troubleshooting tips that will be greatly appreciated. !

    -Thank you,

    I can reproduce your error on my 11.2.0.3 instance. Looks like the bug number 13496250 introduced in the 11.2.0.3.

    John

  • Operation not allowed on the shipment blocking event thread

    Dear friends,

    I'm sorry to put this problem, but I'm posting it after much searching this forum. Although the number of threads, the solution is available, but it does not work on me. On a thread, that the person wrote that he solved the problem, but haven't posted the solution how he had done this. The problem is:

    SerializableAttribute public class SmsDemo extends net.rim.device.api.ui.UiApplication {}
    Private SmsDemoMainScreen SmsDemoMScreen;
    Public Shared Sub main (String [] args)
    {

    SmsDemo SmsDemoApp = new SmsDemo();
    SmsDemoApp.enterEventDispatcher ();
    }
    public SmsDemo()
    {
    _Thread BackGroundThread = new BackGroundThread();
    _Thread.start ();

    SmsDemoMScreen = new SmsDemoMainScreen();
    pushScreen (SmsDemoMScreen);
    }

    class BackGroundThread extends Thread {}
    public BackGroundThread() {}
    / * initialize the constructor parameters * /.
    }

    public void run() {}
        
    net.rim.device.api.ui.UiApplication.getUiApplication () .invokeLater (new Runnable()
    {
       
    public void run() {}
                   
    try {}
    javax.wireless.messaging.MessageConnection msgConn = (javax.wireless.messaging.MessageConnection)javax.microedition.io.Connector.open("sms://:0");
    javax.wireless.messaging.Message msg = msgConn.newMessage (javax.wireless.messaging.MessageConnection.TEXT_MESSAGE);
    javax.wireless.messaging.TextMessage = (javax.wireless.messaging.TextMessage) msg txtMsg.
    txtMsg.setAddress("sms://+91123456789");
    txtMsg.setPayloadText ("Test Message");
    msgConn.send (txtMsg);
                       
    System.out.println ("sending SMS success!");
    } catch (Exception e) {}
    System.out.println (e.getMessage ());
    e.printStackTrace ();
    }
    }
    });
          
    }
    }

    The code above gives error "Blocking Operation not allowed on the event dispatch thread" to msgConn.send (txtMsg); line.

    Please guide me how to solve the problem for example. If possible, please guide me how to continuously listen to the incoming message also. The SmsDemo example with JDE is autonomous work fine but in error when incorporated in my solution.

    Thanking you in anticipation.

    I don't think you need to do invokeLater (new Runnable()... the inner thread.) Try to remove it, I think that this can cause this problem.

  • operation not allowed on java.lang.object

    Hello.

    I use jdeveloper 11.1.1.5

    I had used this code in my AMImpl method
           ViewObjectImpl vo = this.getFinPeriodsView1();
           Row vor= vo.getCurrentRow();        
           System.out.println("Current date : " + (vor.getAttribute("FpFromDate") + 1)  //getting error as operation not allowed on java.lang.object
           + "-"
           + now.get(Calendar.DATE)
           + "-"
           + now.get(Calendar.YEAR));
      
    My scenario is to perform this operation
    select max(add_months(fp_from_date,1)) from fin_periods  //This value is to be set to FPFromDate Attribute for FinPeriods
    select max(add_months(fp_end_date,1)) from fin_periods //This value is set to be set to FpEndDate Attribute for FinPeriods
    I need to do this for 12 periods that example sample is
    for (int i=0;i<=12;i++)
    {
      select max(add_months(fp_from_date,1)) from fin_periods;
      select max(add_months(fp_end_date,1)) from fin_periods;
    }
    How can I do this in my method of AMIMpl.

    Hello
    First add after the stuff inside your implementation code

    //Code Stuff in your mathod as follows
          Calendar cl = Calendar.getInstance();
          java.util.Date dateFromTable = convertDomainDateToUtilDate((oracle.jbo.domain.Date)vor.getAttribute("FyStartDate"));//check now
          cl.setTime(dateFromTable);
          System.out.println (cl.getTime());
          cl.add(Calendar.DATE, 30);//add 30 days
          Date toDate = cl.getTime();
          System.out.println (toDate);
    //
    

    and also add convertDomainDateToUtilDate new method to your class. Method will return java.util.Date to your oracle.jbo.domain.Date

    public java.util.Date convertDomainDateToUtilDate(oracle.jbo.domain.Date domainDate) {
     java.util.Date date = null;
     if (domainDate != null) {
     java.sql.Date sqldate = domainDate.dateValue();
     date = new Date(sqldate.getTime());
     }
    return date;
    }
    
  • ORA-00934: function of group not allowed error when creating index

    ORA-00934: Group feature is not allowed here
    create index idx_emp on emp(max(install_time))

    Hello

    Daniel wrote:
    ORA-00934: Group feature is not allowed here

    create index idx_emp on emp(max(install_time))
    

    It's true. It is documented in the Manual of the SQL language

    Restrictions on Function-based Indexes 
    
    Function-based indexes are subject to the following restrictions:
    ...
    The column_expression cannot contain any aggregate functions.
    

    MAX is an aggregate function.

    What problem are you trying to solve? If you could create an index like this, how would you use it?
    Explain what you need to do, and someone will help you find a good way to do it.

  • ORA-01723 null columns are not allowed

    We create a table using DEC from a remote database. We use the DEC due to performance issues with INSERT-SELECT.
    EXECUTE IMMEDIATE 'CREATE TABLE ods_idl_vst NOLOGGING AS SELECT * FROM remote_tab@remote_db vst';
    "How can I ' ora-01723 null columns are not allowed" error? Our data base is 11g.

    Hello

    Yes it is possible, then you will need to use the trick of cast, or remove the columns in your selection.

    Herald tiomela
    http://htendam.WordPress.com

  • ORA-00934: Group feature is not allowed here

    CREATE or REPLACE PROCEDURE First(
    date1 IN Date,
    date2 IN Date
    )
            AS
    
    date3 employee.start_date%TYPE;
    date4 employee.start_date%TYPE;
    
    Begin
    select min(start_date) into date3 from employee where start_date between date1 AND date2;
    END;
    /
    Above procedure is completed successfully

    But when I changed the query to

    Select min (start_date) date3, max (start_date) in date4 of employee where start_date between date1 AND date2.
    then I get the error message
    ORA-00934: Group feature is not allowed here.
    Why this error happens during execution, but on sqlplus query is executed successfully.
    I checked this in oerr ora-00934 but not able to understand what measures should be taken
    select min(start_date)
    ,      max(start_date)
    into   date3
    ,      date4
    from   employee
    where  start_date between date1 AND date2;
    
  • PL/SQL: ORA-00934: Group feature is not allowed here

    Hello

    I write a PL/SQL procedure. The structure is like:

    SET SERVEROUTPUT ON;
    CREATE or REPLACE procedure abc

    IS
    v_total_ip_rec number (14);
    v_total_op_rec number (14);
    v_total_rec number (14);


    BEGIN
    SELECT SUM (CASE
    WHEN < condition 1 >
    THEN 1
    0 OTHERWISE
    END
    ) in v_total_ip_rec.
    SUM (CASE
    WHEN < condition 2 >
    THEN 1
    0 OTHERWISE
    END
    ) in v_total_op_rec.
    SUM (1) in v_total_rec
    OF A, B
    WHERE A.Col1 = B.Col1;

    EXCEPTION
    WHILE OTHERS THEN
    raise_application_error (-20001,' an error has occurred - ' |) SQLCODE |' - ERROR - ' | SQLERRM);
    END;


    When I run this procedure it gives me following error:
    "PL/SQL: ORA-00934: Group feature is not allowed here."

    Someone has an idea?

    Any help would be appreciated.

    Thank you.

    Should I have any special role?

    Have you checked if synonyms exist for tables?
    Please check in this order:

    #1-synonymes appropriate
    #2-appropriate privileges
    #3-appropriate roles

  • Outer join does not not as expected left

    Hi all

    I have it here are three tables with values. Mentioned the under outer join query does not and behave like the inner query.

    CREATE TABLE RET_FUND_FEE

    (

    NPTF VARCHAR2 (8 CHAR),

    TPART VARCHAR2 (4 CHAR)

    );

    CREATE TABLE PART_PTF

    (

    Mf_Id VARCHAR2 (6 CHAR) NOT NULL,

    TPARTS VARCHAR2 (4 CHAR) NOT NULL

    );

    CREATE TABLE TFC_FUNDS

    (

    NPTF VARCHAR2 (8 CHAR) NOT NULL,

    MULTIFONDS_ID VARCHAR2 (6 CHAR)

    );

    INSERT INTO RET_FUND_FEE VALUES('111','A');

    INSERT INTO RET_FUND_FEE VALUES('111','D');

    INSERT INTO RET_FUND_FEE VALUES('111','E');

    INSERT INTO PART_PTF VALUES ('MF1', 'A');

    INSERT INTO PART_PTF VALUES ('MF1', 'B');

    INSERT INTO PART_PTF VALUES('MF1','C');

    INSERT INTO TFC_FUNDS VALUES('111','MF1');

    INSERT INTO TFC_FUNDS VALUES('111','MF1');

    INSERT INTO TFC_FUNDS VALUES('111','MF1');

    SELECT A.TPART, B.TPARTS, A.NPTF, B.Mf_Id, C.MULTIFONDS_ID, C.NPTF

    OF RET_FUND_FEE A, PART_PTF B, TFC_FUNDS C

    WHERE A.NPTF = C.NPTF

    AND C.MULTIFONDS_ID = B.Mf_Id

    AND A.TPART = B.TPARTS (+)

    AND C.MULTIFONDS_ID = 'MF1 '.

    AND C.NPTF = '111'

    Here, I expect all records in the RET_FUND_FEE table that I am using outer join.

    But I'm only corresponding chronogram RET_FUND_FEE, PART_PTF as an inner join. Can you get it someone please let me know what lack us.

    Is my version of oracle 11g

    SELECT

    A.TPART, B.TPARTS, A.NPTF, B.Mf_Id, C.MULTIFONDS_ID, C.NPTF

    Of

    PART_PTF B

    Join

    C TFC_FUNDS

    on (C.MULTIFONDS_ID = B.Mf_Id

    AND C.MULTIFONDS_ID = 'MF1 '.

    AND C.NPTF = '111'

    )

    right outer join

    RET_FUND_FEE HAS

    on (A.TPART = B.TPARTS

    and A.NPTF = C.NPTF) - added as correction

    TPART TPARTS NPTF MF_ID MULTIFONDS_ID NPTF
    A A 111 MF1 MF1 111
    A A 111 MF1 MF1 111
    A A 111 MF1 MF1 111
    E - 111 - - -
    D - 111 - - -

    or

    SELECT A.TPART, d.TPARTS, A.NPTF, d.Mf_Id, d.MULTIFONDS_ID, d.NPTF

    OF RET_FUND_FEE HAS

    , (

    Select

    *

    PART_PTF b, TFC_FUNDS C

    where B.Mf_Id = C.MULTIFONDS_ID

    AND C.MULTIFONDS_ID = 'MF1 '.

    AND C.NPTF = '111'

    ) d

    WHERE A.TPART = D.TPARTS (+)

    and A.NPTF = D.NPTF (+) - added as a correction

    Sorry had to correct the syntax oracle solution.

    The first one was bad because it would return also B lines that have no match in C.

    Sorry a correction more on these two approaches, missed the second predicate.

  • Left Outer Join does not work why?

    Hello

    I have a question I want to return all the id group grp_id table and count and give me a count of all "active" members in the Member table. There are a few members who are not active in the table of members who belong to groups in the grp_id table. I still want a record returned for these grpid, but since there is no active members for these groups, I would like a zero as the mbr_count. An active mbr is the one whose eff_dt is less than the date of the day and whose exp_dt is greater than today's date.

    I have listed the query below, which returns active records mbr, but unfortunately does not return a grpid (as in my example of data) is not an active member (grpid: has ""). I have also provided the DDL for both tables as well as some examples of data that gives me the (Incorrect) results, that I posted. I have also posted what I need (the 'Correct' results).

    Thanks for any help... (I use PL/SQL)

    THE QUERY I USE:
    =============
    SELECT
    G00.grpid,
    Count (M00.grpid) mbr_count
    Of
    g00 grp_id
    LEFT OUTER JOIN
    m00 MBR on
    G00.grpid = m00.grpid
    WHERE
    M00.eff_dt < sysdate
    AND
    M00.exp_dt > sysdate
    GROUP BY
    G00.grpid

    It gives me results like:

    INCORRECT RESULTS:
    ===============
    GRPID MBR_COUNT
    A 2
    B 2
    C 1

    I want to see is:

    CORRECT RESULTS
    ===============
    GRPID MBR_COUNT
    A 2
    B 2
    C 1
    D 0


    Here's the DOF and the sample data:

    create table grp_id (grpid varchar (1))

    insert into grp_id values ('A')
    insert into grp_id values ('B')
    insert into grp_id values ('C')
    insert into grp_id values (')

    Commit

    create table mbr (mbr_name varchar (10), varchar (1) grpid, eff_dt date, exp_dt date)

    insert into values of mbr ('BRAND', 'A', to_date (January 1, 2011 ',' DD-MM-YYYY '), to_date (July 1, 2011 ',' DD-MM-YYYY '))
    insert into values of mbr ('BRAND', 'A', to_date (July 1, 2011 ',' DD-MM-YYYY '), to_date (1 January 2012 ',' DD-MM-YYYY '))

    insert into values of mbr ('MARTY', 'A', to_date (January 1, 2011 ',' DD-MM-YYYY '), to_date (July 1, 2011 ',' DD-MM-YYYY '))
    insert into values of mbr ('MARTY', 'A', to_date (July 1, 2011 ',' DD-MM-YYYY '), to_date (1 January 2012 ',' DD-MM-YYYY '))

    insert into values of mbr ('FRANK', 'B', to_date (January 1, 2011 ',' DD-MM-YYYY '), to_date (July 1, 2011 ',' DD-MM-YYYY '))
    insert into values of mbr ('FRANK', 'B', to_date (July 1, 2011 ',' DD-MM-YYYY '), to_date (1 January 2012 ',' DD-MM-YYYY '))

    insert into values of mbr ('MARY', 'B', to_date (January 1, 2011 ',' DD-MM-YYYY '), to_date (July 1, 2011 ',' DD-MM-YYYY '))
    insert into values of mbr ('MARY', 'B', to_date (July 1, 2011 ',' DD-MM-YYYY '), to_date (1 January 2012 ',' DD-MM-YYYY '))

    insert into values of mbr ('JOHN', 'C', to_date (January 1, 2011 ',' DD-MM-YYYY '), to_date (July 1, 2011 ',' DD-MM-YYYY '))
    insert into values of mbr ('JOHN', 'C', to_date (July 1, 2011 ',' DD-MM-YYYY '), to_date (1 January 2012 ',' DD-MM-YYYY '))

    insert into values of mbr ("NOAM" 'd', to_date (January 1, 2011 ',' DD-MM-YYYY '), to_date (July 1, 2011 ',' DD-MM-YYYY ') ")

    Thanks for the script, shame on the missing semicolon :)

    Your date restrictions are implemented as "filter predicates" rather than "join predicates.
    that is the difference between a place ANDS extra o in the JOIN clause.

    SQL> SELECT
      2  g00.grpid,
      3  count(m00.grpid) mbr_count
      4  FROM
      5  grp_id g00
      6  LEFT OUTER JOIN
      7  mbr m00 on
      8  g00.grpid = m00.grpid
      9  WHERE
     10  m00.eff_dt < sysdate
     11  AND
     12  m00.exp_dt > sysdate
     13  GROUP BY
     14  g00.grpid
     15  /
    
    G  MBR_COUNT
    - ----------
    A          4
    B          4
    C          2
    
    SQL> SELECT
      2  g00.grpid,
      3  count(m00.grpid) mbr_count
      4  FROM
      5  grp_id g00
      6  LEFT OUTER JOIN
      7  mbr m00 on
      8  g00.grpid = m00.grpid
      9  AND
     10  m00.eff_dt < sysdate
     11  AND
     12  m00.exp_dt > sysdate
     13  GROUP BY
     14  g00.grpid;
    
    G  MBR_COUNT
    - ----------
    D          0
    A          4
    B          4
    C          2
    
    SQL> 
    
  • ORA-16143: connections of RFS not allowed during or after a Terminal recovery

    Hi all

    I wanted to transfer primary DB archiving log of STANDBY DB by the window / given destnination

    After you have created the database physically Eve, I put database waiting for recovery by using the command:-change the recovery of database managed standby database disconnect from the session.

    After that when I ran this command: -.
    ALTER database recover managed standby database finish;

    After that when I tried to recover database to help given comand awaiting:-recover managed standby database.

    Get the error such as ORA-16143: RFS connections that are not allowed during or after a Terminal recovery

    I can see this error on primary DB filev alerts log

    I can open my database in waiting.

    The two Oracle: 10.2.0.4
    The two platform: RHEL 4.7

    Please suggest me for this, help is appreciated

    Published by: user1687821 on July 12, 2010 08:37

    user1687821,

    After the use of the clause to FINISH, you MUST open the standby database as PRIMARY.

    Finishing clause must be used while you're perparing to failover to your database pending.

    Which is clearly given by the error message; you did a cover of Terminal:

     ORA-16143: RFS connections not allowed during or after terminal recovery 
    

    unless you have a pending restore point until you execute the clause of finishing, you will need rebuild your watch or use it as the primary database.

    See you soon.

  • Outer join is not retrieve the correct values

    Hi, I have a problem to recover some data from this query with outer join:

    SELECT count (incident_id), range_2 of
    (by selecting range_2 in apps.aaa_table),
    (Select inc.incident_id,
    XXN2B_RESOLUTION_RANGE (2, ROUND (((TO_DATE (inc. INCIDENT_ATTRIBUTE_7, «hh24:mi:ss jj/mm/yyyy»)-inc. INC_RESPONDED_BY_DATE) * 24), 2)) VARIES
    Inc. stuff
    Inc. INVENTORY_ITEM_ID,
    prom_dt. Iptv_Sumptom - S? µpt? µA
    OF cs_incidents_all_b inc.,.
    cs_incidents_all_tl tl,
    cs_sr_type_mapping m,
    fnd_responsibility RESP,
    ntt xxntt.xxntt_incidents_support,
    xxntt.xxntt_incidents ntt_inc,
    XXe.xxe_tt_promitheas_dt prom_dt,
    20th. Xxe_Cs_Int_Sla als
    WHERE inc.incident_id = tl.incident_id
    AND tl. LANGUAGE = 'EL '.
    AND inc.incident_type_id = m.incident_type_id
    AND resp.responsibility_key IN (select SV. S fnd_flex_value_sets FLEX_VALUE, FND_FLEX_VALUES SV
    where s.FLEX_VALUE_SET_NAME = 'XXNTT_RESPONSIBILITIES. '
    AND S.FLEX_VALUE_SET_ID = SV. FLEX_VALUE_SET_ID)
    AND m.responsibility_id = resp.responsibility_id
    AND resp.end_date is null
    AND inc.incident_number = ntt.incident_number (+)
    AND inc.incident_number = ntt_inc.incident_number (+)
    AND inc.incident_id = prom_dt.incident_id (+)
    AND inc.incident_number = sla. Incident_Number (+)
    - and don't like '%0:00% ' TOTAL_INACT_SLA_DURATION
    (Inc. INC_RESPONDED_BY_DATE is not null AND INCIDENT_ATTRIBUTE_7 is not null)
    ) b.
    (select * from xxntt_custom_hierarchy)
    Union
    Select eidos null null omada, null product_categiory, stuff, null, null, inv_item_descripiption, null, tautopoihsh, inv_item_id double null null symptom
    ) c
    where a.range_2 = b.ranges (+)
    and c.INV_ITEM_ID (+) = b.INVENTORY_ITEM_ID
    and c.CATEGORY_ID (+) = b.CATEGORY_ID
    and c.SYMPTOM (+) = b.IPTV_SUMPTOM
    and c.OMADA = 'A '.
    Range_2 group

    This request is composed by 3 dataset: a, b and c

    the data group is a fixed list of values (LOV): range_2 = "0-2h','2-4h','4-6h','6-8h','8-10h','10-12h','12-14h','14-16h','16-18h','18-20h".

    the dataset b retrieve a list of the incident_id and their related ranges (calculated with the XXN2B_RESOLUTION_RANGE function)

    the c dataset is just a filter on the b of dataset to retrieve only the incident_id who belong to the group "A".

    I want to reach is this: always see the full list of values 'range_2', even if I do not have incident_id with a particular range.
    That's why I put the condition: a.range_2 = b.ranges (+)

    .. .but it does not work... I don't see the incident_id which have the scope inside the LOV... instead I want to see also if there is incident_id without a range to the LOV.

    Range_2 grouping, I see:

    ! http://www.freeimagehosting.NET/uploads/d900035c11.jpg!


    Instead of

    ! http://www.freeimagehosting.NET/uploads/99a75dfca4.jpg!

    Can someone help me understand where is the error?

    Thanks in advance

    Alex

    Hi Alex,

    I think you need to externally join the final predicate, thus:

    ..
    and c.OMADA(+) = 'A'
    ..
    

    Concerning
    Peter

  • Outer join does not

    Hello

    Pls help me my request. I tried the following, but it does not give the expected results.

    Tab1
    EmplId, RepDt, Code, Hrs
    1/100,1/2009,199,8
    1/100,1/2009,200,4
    1/100,1/2009,255,3
    200,1/1/2009,200,4
    100.5/1/2009,199,8


    Tab2
    EmplId, RepDt, Code, Hrs
    1/100,1/2009,200,6
    200,1/1/2009,200,3

    I need output like this - 4 rows - need of all the rows from TAB1 when EMPLID, REPDT match TAB2, field values: need at a time when Code is also, when emlid, correspondence of the date, the Code missing so need A hrs, display ZERO as Tab2 hours.

    1/100,1/2009,199,8,0 - did not exist is not in tab2, so hrs Tab2 is ZERO
    1/100,1/2009,200,4,6 - Emplid, RepDt, Code match existence in Tab2, Tab1 Hrs 8, 6 Hrs Tab2
    1/100,1/2009,255,3,0 - did not exist is not in Tab2, so Tab2 hrs is equal to ZERO
    200,1/1/2009,200,4,3 - Emplid, Repdt, Code Match existed in Tab2, 4 Hrs of Tab1, Tab2 3 Hrs

    We are in 10g, Oracle.

    I tried the following
    T1. EmplId = T2.emplid AND T1.repdt = T2.repdt AND T1.code, T2.code = (+) - returns the unique corresponding lines, 2 rows.

    Pls help.

    Thanks in advance.

    Published by: NL 23 February 2009 09:20

    Hello

    See the Boneist first message in this thread:

    select t1.emplid, t1.repdt, t1.code, t1.hrs, nvl(t2.hrs, 0)
    from   tab1 t1,
           tab2 t2
    where  t1.emplid = t2.emplid (+)
    and    t1.repdt = t2.repdt (+)
    and    t1.code = t2.code (+)
    and    (t1.emplid, t1.repdt) in (select emplid, repdt
                                     from   tab2)
    order by repdt, emplid, code;
    

    As Boneist said, this fact corresponds to option (b)
    "(b) do just an outer join, with a condition EXISTS (or IN) in the WHERE clause to find corresponding repdts.
    The

    (+)
    

    an outer join are signs.

  • Operation not allowed here

    Hello!!

    I use jdeveloper 11.1.1.5

    I am trying to do this in the AMImpl method
    gapbr.setAttribute("GapbDebitAmt",(gapbr.getAttribute("GapbDebitAmt")+ghlr.getAttribute("GjlDebitAmt")))
    I get an error message like operation not permitted here

    Have you read the docs? Do you know what it returns getAttribute (). It returns an object. Can add you a table and a Chair? Convert them to open the types then add

Maybe you are looking for