ORA-01719: outer join operator (+) not allowed in operand of OR

Hi all:
I understand the error, but I'm not sure how to fix my query. In our database, a person does not NEED to have an address. The report I'm trying to create has a parameter for which address the user would like to have displayed. BUT, I need to outer join to the address table since people don't need an address, but we'd want to display all records, even if the address is null. Here's only part of my code since the query is quite large. Let me know if more is needed, and I'll supply it. I'm definately stuck. At this point I'm thinkin' of just creating two reports; one that displays the clients address, and a second that'll display the house physical address. The code:
WHERE
:P_ADDR = 'Lessee Mailing Address' AND
lessee.actor_inst = address.actor_inst (+)
) OR (
:P_ADDR = 'Unit Address' AND
housing.actor_inst = address.actor_inst (+)
) AND

Stick with ANSI SQL Notation, then you can overcome this restriction.
See Back to basics: outer joins
and look for »ORA-01719«

Similar Messages

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

    I am getting the following Error when I tried to execute my Query.
    Error : ORA-01719: outer join operator (+) not allowed in operand of OR or IN
    select unique t.estblmt_src_typ_id as estblmt_src_typ_id,
    t.name as name from estblmt_src_typ t, src_estblmt_unknown_data u, estblmt_src eSrc, estblmt e,
    additional_addr aa, country c, src_country_state_region scsr
    where
    (t.estblmt_src_typ_id=u.estblmt_src_typ_id and
    e.state_region_id=scsr.state_region_id and
    upper(scsr.code1)='UNKNOWN' and
    u.processed_ind = 'N' and
    eSrc.Estblmt_Alt_Id = u.estblmt_alt_id and
    u.estblmt_src_typ_id = eSrc.estblmt_src_typ_id and
    eSrc.Estblmt_Id = e.estblmt_id and
    e.country_id = c.country_id and
    u.estblmt_element = 'State Region' and
    scsr.estblmt_src_typ_id = u.estblmt_src_typ_id and
    aa.estblmt_id(+)=e.estblmt_id and
    e.end_dt is null) or
    (t.estblmt_src_typ_id=u.estblmt_src_typ_id and
    aa.state_region_id=scsr.state_region_id and
    upper(scsr.code1)='UNKNOWN' and u.processed_ind = 'N' and
    eSrc.Estblmt_Alt_Id = u.estblmt_alt_id and
    u.estblmt_src_typ_id = eSrc.estblmt_src_typ_id and
    eSrc.Estblmt_Id = aa.estblmt_id and aa.country_id = c.country_id and (u.estblmt_element = 'Additional State Code' or u.estblmt_element = 'Additional State Province') and scsr.estblmt_src_typ_id = u.estblmt_src_typ_id
    and aa.estblmt_id=e.estblmt_id and e.end_dt is null) order by t.name

    First, is this query being executed within Apex or at the SQL prompt or in SQL Workshop, or something else? Some context of where it's being executed may help.
    Next, that's a query from hell. How about rewrting it to use ANSI join syntax instead, so it'a bit more readable?
    A quick example for part of it would be:
    FROM (additional_addr aa LEFT OUTER JOIN estblmt e ON aa.estblmt_id = e.estblmt_id )
    etc.
    Just add additional parenthesis for each additional table join, similar to:
    FROM ((additional_addr aa LEFT OUTER JOIN estblmt e ON aa.estblmt_id = e.estblmt_id )
    LEFT OUTER JOIN src_country_state_region scsr ON aa.state_region_id = scsr.state_region_id )
    In the long run it will make the query a bit more legible, so your where clause only lists the query conditions, not the join conditions. Then it becomes easier to quickly glance at it and see where potential problems may be.
    Bill Ferguson

  • Outer Join problems - "ORA-30563 outer join operator (+) not allowed in select-list"

    Products: Discoverer 4.1.33.0.2
    (Admin and User/Plus)
    8i EE 8.1.7 (Discoverer server)
    8i EE 8.1.5 ('source data' server)
    Background assumptions: (1) If a column from an "outer-joined" table is compared to a constant, the outer join operator must be applied to that column in order for the outer join to work. (2) A 'Condition' specified in Discoverer User/Plus manifests as a comparison to a constant.
    I created a join in Admin between two folders, selected 'outer join on detail' option. In User/Plus, created worksheet containing columns from the joined folders. When no Conditions are NOT specified, results seem ok. However, when Condition IS added, worksheet encounters "ORA-30563 outer join operator (+) not allowed in select-list" and returns blank sheet.
    To workaround, created Custom folder with outer join in place. Didn't work either with Conditions specified. No error, but I think that because Discoverer did not 'outer join' the Condition column, the outer join was ignored.
    Any insights, ideas, or workarounds are much appreciated.
    -Jim

    If you build a query that uses an outer join then any items from the potentially deficient side of the join will have (+) appended to them everywhere in the sql. Up until 8.1.7 this was OK in the select list as it was just treated as noise and ignored - However this now fails with ORA-30563:
    outer join operator (+) not allowed in select-list...
    In 4.1.33.1.6 you get the error 'ORA-30563 outer join operator(+) not allowed in select list'.
    In 4.1.36.1.10 the query runs OK.. Your work around I would guess would be to create a custom folder as you suggested.

  • ORA-30563, Outer Join not allowed in select list

    I can not find any information about this error message that I am getting.
    I have just upgraded my Oracle database from Version 7.3 to Version 8.1.7, a stored procedure that was written in v7.3 has outer joins in the select statement.
    when trying to run this proc in version 8 I get this meesage.(ORA-30563, Outer Join not allowed in select list)
    code ex:
    Select alt.id
    decode(alt.advise, NULL, NULL, AA.act_yr(+))||'-'||AA.act_per(+)||'-'||AA.Acc_per_no(+)) as advise_no
    from alt, AA;
    Is there any information about this message anywhere? or does anybody know if this is a known issue with oracle ver 8.1.7?
    Thanks
    CJ

    It appears to have been a bug in 7.x
    From a metalink note on bugs fixed in 8i (doc 132632.1)
    974742 Oracle does not report an error if (+) is specified in select-list. The OUTER JOIN operator (+) is only valid in WHERE clause predicates. As this is not flagged as an error the query can give unexpected results. The correct action to avoid this problem is to fix the query.
    Ken

  • ORA-00976: Specified pseudocolumn or operator not allowed here

    Hi,
    After 11gR2 upgrade we got error in insert statement.
    INSERT INTO SDE_TBL_FLEXTRIMSITROUT
    (BRANCHCD,
    SOURCECD,
    CURRENTNO,
    BATCHNO,
    DEPTCD,
    CCY,
    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.TRANSDATE, 'YYYYMMDD'),
    nAmount,
    vAccount,
    vAccountBranch, --added by subhashish
    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 pseudocolumn or operator not allowed here
    As per checking, found there is an issue in 11gR2 with insert query using rownum in values.
    Do anyone know how to solve this issue ?

    If there is a bug here, then it is in 10g, not 11.  Although it does insert a row, I don't think it does anything useful.
    SQL> create table t (id number, descr varchar2(10));
    Table created.
    SQL> insert into t values (rownum, 'One');
    1 row created.
    SQL> select * from t;
              ID DESCR
               0 One
    SQL> insert into t values (rownum, 'Two');
    1 row created.
    SQL> select * from t;
              ID DESCR
               0 One
    SQL> commit;
    Commit complete.
    SQL> insert into t values (rownum, 'Three');
    1 row created.
    SQL> select * from t;
              ID DESCR
               0 One
               0 Two
               0 Three
    John

  • Can't open sequence: " operation not allowed.  Out of memory"

    I have a project with several sequences. The master sequence started freezing on me. I restarted FCP and the computer, but now it won't let me open this sequence. It will let me open others in the project, but not this one. It's even smaller than others. I get the error message, "Operation not allowed. Out of memory." How do I fix this if I can't open it? I've cleaned out render files as well.
    Thanks for the help!

    The graphics/stills don't reside in your project or in a Sequence - those are just pointers to the original media. The images should be on a hard drive wherever you stored them.
    The problem could also be due to a corrupt render files. You could try trashing the render files for the project and see if it opens afterward.
    -DH

  • Cannot open Sequence:  "Operation Not Allowed" then "Out of Memory"

    I quit FCS1 for about 5 hours and returned. When I opened the project I was working on I got these messages: "Operation Not Allowed" then "Out of Memory" when I attempt to open my master working sequence. Other sequences (small nests) do open within the project. The project opens, so the file is not corrupt. A back-up copy of the same project file on a separate physical disc generates the same results. I deleted the prefs and User Data folder, even ran FCP Rescue. Same results. Then I resorted to the Autosave Vault. The two most recent saves resulted in the same error messages. Fortunately the next did not. I lost a considerable amount of work. The system says my memory is OK (6GB). Any ideas? (An attempt to open on a FCS2 machine {8GB RAM} resulted in the same two error messages.)
    The project is fairly lengthy (90 mins) and does have numerous 1 and 2 frame audio edits. Nothing particularly unusual in the video tracks--although I am mixing DV and HDV. It doesn't seem to me these attributes would matter, just throwing them out there.

    ...removing and re-rendering is a great idea, if you've got the time.
    And if during render you get the same out of memory error, try rendering "in-to-out", rendering small chunks until you get to a chunk which brings up the error. Then, you've found an offending "corrupt" file.

  • Operation not allowed , Out of Memory

    Hey everyone.
    I opened an FCP project one day and opened a sequence and got a dialog that says "Operation not Allowed", followed by "Out of Memory."
    I can't open the sequence anymore.
    I am running latest FCP with mac book pro intel core2 duo. I've got 2 GB ram and had nothing else open so I don't think it's the memory.
    Anyone know a fix for this?
    Help because I lost ALL my work!!!

    I've seen this message when opening projects with clips using unsupported codecs such as Avid Meridien. You might be able to take the media drive offline temporarily to get eh project open, and sort the browser by compressor to check for different or missing codecs. Usually you can find these online and place the in the /Liibrary/QuickTime/ folder.
    Hope this helps -
    Max Average

  • JDBC + MySQL : "Operation Not Allowed After ResultSet Closed"

    I have a very short piece of code. I use one connection to the database. I execute a query, get back a lot of rows, then iterate through the result set and for each row I get some information and then perform an insert into a different table.
    The problem is that the big result set I am iterating through keeps closing sometime during the first iteration. Why? I am using three different statements:
    1) Statement 1 is for the main query I want to iterate through
    2) Statement 2 is for a quick lookup I perform (on a different table) for each item in the iteration.
    3) Statement 3 is for the Insert statement which I perform for each item in the iteration. Again, I insert into a different table and I use "executeUpdate"
    Given the I have three different statements and I am working with three different tables, why does my main result set that I am iterating through keep closing on me?
    Here is the error I am getting:
    java.sql.SQLException: Operation not allowed after ResultSet closed
    at com.mysql.jdbc.ResultSet.checkClosed(ResultSet.java:3603)
    at com.mysql.jdbc.ResultSet.next(ResultSet.java:2468)
    at com.mysql.jdbc.UpdatableResultSet.next(UpdatableResultSet.java:565)
    Thanks for your help.

    I have a very short piece of code. I use one
    connection to the database. I execute a query, get
    back a lot of rows, then iterate through the result
    set and for each row I get some information and then
    perform an insert into a different table.Sounds like a classic case of making Java do what the database was made to do.
    I'd bet you can do this in a single INSERT with a SELECT in the database in one network roundtrip. The "quick lookup" might be a JOIN or a sub-SELECT. When you do a query, bring N rows back to the middle tier, then do an INSERT for each row that you retrieve it means (N+1) network roundtrips if you don't batch your INSERTs. I'd have a SQL expert give your code a look.
    The problem is that the big result set I am iterating
    through keeps closing sometime during the first
    iteration. Why? I am using three different
    statements:
    1) Statement 1 is for the main query I want to
    iterate through
    2) Statement 2 is for a quick lookup I perform (on a
    different table) for each item in the iteration.
    3) Statement 3 is for the Insert statement which I
    perform for each item in the iteration. Again, I
    insert into a different table and I use
    "executeUpdate"
    Given the I have three different statements and I am
    working with three different tables, why does my main
    result set that I am iterating through keep closing
    on me?Maybe your ResultSet or Statement goes out of scope. Do the Statements share a Connection?
    %

  • How to achieve outer join operator(+) in HQL?

    Dear all,
    The two tables employee and customer have not explicate association (by FK and PK). In Oracle SQL, we can use the operator (+) as follows for an outer join. For example,
    SELECT * FROM  employee, customer           where employee.name = customer.name(+)
    However, HQL does not support this outer join operator. How can we translate the above SQL select to HQL?
    Regards.
    Pengyou

    shashi_rajak wrote:
    Already posted in [ hibernate forum|https://forum.hibernate.org/viewtopic.php?f=1&t=997869] . This does not have to do with java.
    Yes, but I did not get any solution.
    Hibernate has something to do with java. You can not say for example java has nothing to do with Internet or Internet has nothing to do with Computer. Anyhow, thanks for your reply.

  • ORA-20103: Null input is not allowed

    Hi, Got a bit of a problem I'm struggling with. Hoping someone can help !
    I've got some PL/SQL code which performs some simple checks against XML to see if its Malformed.I can't cut and paste the real code due to security constraints but this should give you the gist :
    BEGIN
    p:=xmlparser.newParser;
    xmlparser.parseCLOB(p,c); -- where P is xmlparser.parser and c is a CLOB variable
    doc:= xmlparser.getDocument(p);
    --Check Elements
    --Attributes etc
    goes on through the elements etc checking for missing tags etc.
    This code worked a treat but then when once in production we started getting some Java out of memory errors so I've added a xmlparser.freeparser(p) and a freedocument once everything is completed (the parser is created and destroyed for each CLOB as part of a cursor loop) but now when I run it I get a ORA-20103: Null input is not allowed error. I've traced it through and it bombs out with this error at the point where it performs the xmlparser.parseCLOB(p,c) call. I've checkd and the Clob variable has a clob in it at the point where parseCLOB is called.
    What makes this really interesting is that the ORA-20103 error only occurs when you pass it a clob containing MALFORMED XML !! This didn't happen before I added the freeparser etc !!!
    I've compared code and its identical save for the freeparser and freedocument calls, which come well AFTER the parseCLOB command.
    Has anyone got any ideas as I'm out of them !!
    Thanks in advanced for any help received.
    Ta
    Si

    This should solve your problem
    IF (xmldom.isNull(nf) = TRUE) THEN
    dbms_output.put_line ('I am NULL');
    ELSIF (xmldom.isNull(nf) = FALSE) THEN
    dbms_output.put_line ('I am not NULL');
    IF xmldom.getNodeType(nf) = xmldom.TEXT_NODE THEN
    dbms_output.put_line (xmldom.getNodeValue(nf));
    END IF;
    END IF ;
    Thanks
    Devdatt

  • Cannot save work FCP displays "Operation Not Allowed"

    I began working on a new project last week delievered to me as media files and project file on a 500 G. LaCie drive.
    After working a couple of hours on this project, I began to get a warning box "Operation Not allowed" everytime I tried to save or auto-save. It will not save even upon closing of the project, so I've lost a lot of work so far.
    I had a workaround for a while, but that began to bug out as well. I don't have the problem on my other projects and media which are on other media drives.
    Any way I can get rid of this problem?

    make sure that 'ignore ownership on this volume' is checked.
    you get to it though 'Get Info' - (right click on the drive icon to bring up the selection).
    x

  • Operation Not Allowed

    does anyone know what operation not allowed means?
    I had a timeline with a .PSD in it, as i draged it over a piece of video in the timeline a red box in the viewer came up and asked me to refresh the window. A dialogue Box came up and said out of memory, which I find hard to believe. I shut FCP down and now I cant open that timeline. Is there any way to get around this and re-activate my timeline?
    Any thoughts would be appreciated.
    N Neame

    Well I ended up using an auto save of the project. I lost only 5 minutes of work.
    Stats of the .PSD
    Size: 720-576
    Aspect Ratio 1.066 (Pal DV)
    Colour Mode: RGB
    Bit Depth: 8 Bit
    Layers: 1
    Platform: Adobe CS2
    So Im not to sure what the problem was but I imagine that the file was just bad. Thanks for your thoughts guys.
    Interesting to note that it could be a memory problem. Especially the Operation not allowed on exports. I have seen this a few times myslef. However the files from the export work fine. Go figure. Gremlins I guess.
    Cheers guys,
    Nic Neame

  • Javax.jms.IllegalStateException: Operation not allowed

    Hi all, (first time posting, so go easy on me!)
    just wondering can anyone out their shed some light on a problem I am having here with JMS. I am attempting to access JMS from a stateless EJB. The problem is I get an illegalStateException when I call "setMessageListener(..)". The bean simply creates an object (which implements the MessageListener interface) passing an RMI client callback reference into the constructor. The idea here is that when JMS forwards a message onto my listener, in the onMessage(..) function I call back into the RMI client. So the idea sounds simple, but JMS wont let me register the listener from the EJB. Heres some code and the exception which is generated (including the call stack):
    jndiContext = new InitialContext();
    Object objRef = (Object)jndiContext.lookup ("java:comp/env/jms/TopicConnectionFactory");
    topicConnectionFactory = (TopicConnectionFactory)PortableRemoteObject.narrow(objRef, TopicConnectionFactory.class);
    topic = (Topic) jndiContext.lookup(topicName);
    topicConnection = topicConnectionFactory.createTopicConnection("Administrator", "123");
    topicSession = topicConnection.createTopicSession(false, Session.AUTO_ACKNOWLEDGE);
    topicSubscriber = topicSession.createSubscriber(topic);
    AppletSubscriber as = new AppletSubscriber(listener);
    topicSubscriber.setMessageListener(as); // here's were the exception is thrown
    Here's the exception & stack trace:
    JMS Exception registerEventsListener: javax.jms.IllegalStateException: Operation
    not allowed
    javax.jms.IllegalStateException: Operation not allowed
    at com.sun.enterprise.jms.MessageConsumerWrapperRestricted.setMessageLis
    tener(MessageConsumerWrapperRestricted.java:40)
    at RespondAdministrator.registerUserEventsListener(RespondAdministrator.
    java:61)
    at UserLogOnEJB.registerUserEventsListener(UserLogOnEJB.java:53)
    at UserLogOnEJB_EJBObjectImpl.registerUserEventsListener(UserLogOnEJB_EJ
    BObjectImpl.java:57)
    at UserLogOnEJBEJBObjectImpl_Tie._invoke(Unknown Source)
    at com.sun.corba.ee.internal.POA.GenericPOAServerSC.dispatchToServant(Ge
    nericPOAServerSC.java:519)
    at com.sun.corba.ee.internal.POA.GenericPOAServerSC.internalDispatch(Gen
    ericPOAServerSC.java:204)
    at com.sun.corba.ee.internal.POA.GenericPOAServerSC.dispatch(GenericPOAS
    erverSC.java:112)
    at com.sun.corba.ee.internal.iiop.ORB.process(ORB.java:273)
    at com.sun.corba.ee.internal.iiop.RequestProcessor.process(RequestProces
    sor.java:84)
    at com.sun.corba.ee.internal.orbutil.ThreadPool$PooledThread.run(ThreadP
    ool.java:99)
    thanks in advance, this is driving me nuts.

    The reason you get this is that you cannot use MessageListeners within a J2EE environment. The J2EE specification says that this method should not work from within EJBs. If you wish to have asynchronous message delivery from an EJB you need to use EJB 2.0s Message Driven Beans.
    Hope this helps.

  • ORA-00934: group function is not allowed here

    Hi,
    My requirement is to check oi.quantity is equal to sum of packing_detail. quantity
    by order_number
    select oi.quantity_ordered oi_qu, pd.quantity pq
    from ordered_items oi, packing_details pd
    where oi.ordered_item_id = pd.ordered_item_id
    and oi.quantity_ordered = sum(pd.quantity)
    and oi.order_number = '29';
    after executing above query I get error
    SQL Error: ORA-00934: group function is not allowed here
    00934. 00000 - "group function is not allowed here"
    Please tell me how to resolve it.
    Thanks in advance
    Sandy

    You have to make use of a subquery;
    select oi.quantity_ordered oi_qu, pd.quantity pq
    from ordered_items oi, packing_details pd 
    where oi.ordered_item_id = pd.ordered_item_id 
    and oi.quantity_ordered = *(select sum(pd.quantity) from packing_details pd1 group by pd1.ordered_item_id)* 
    and oi.order_number = '29';  This is based on the assumption that ordered_items is the summarize data and packing_details are the line item level data.
    regards,
    Dipankar.

Maybe you are looking for

  • Lenovo Ideapad U410: part of screen is white

    I have a Lenovo Ideapad U410 and the left part of my screen is uniformly white after turning on the laptop. It's a rectangle about 1 inch long, from top of the screen to the bottom. I got this suddenly pretty much a month after buying the laptop (it

  • Does 3.1.1 support bluetooth headsets?

    Hi there, I was wondering if someone could clarify for me whether I should be able to connect a headset (BlueAnt Z9, 4.0 firmware) to my iPod touch. I found an article online where the reviewer connected this exact headset to his iPhone. Should this

  • Inserting Webitem in WAD tool bar

    Hello, we have to add couple of web items to our standard template.after adding them,how to insert them in already existing tool bar? lets assume we have dragged and dropped Chart and Map web items into Layout.Now how to include them in tool bar? we

  • How to get Adobe RTMP SDK?

      I want to apply Adobe Media Server Connector for C++? How to do it?

  • Activate changes in weblogic admin console

    I configured a WLI 9.2 server with the wizard, It worked fine. For info I configured a cluster with one member server. But I had other configuration to set up with the admin console. Like adding data sources, mail sessions and deploying application.