Debugging "ORA-01403: no data found" with print_lcr

After reading several of the posts, google and the documentation, I am hoping to find some further help. Using print_lcr as suggested by a number of fine folks in this forum, I have found that one of our date fields seems to be the problem in an update statement. The documentation (Chapter 11) suggests that "you can use a DML handler to modify an LCR so that it matches the table". If the incoming date is lacking hours, minutes and seconds, how would one create such a dml handler? I can find examples in the documentation, but I cannot wrap my head around how one would grab the granular data. And to make things more fun, our 3rd-party application "cannot" be changed.
Environment is 10.2.0.2 on Solaris with a couple Streams related patches (I can provide details if they are important). Using Downstream (and non-local) capture which is then propagated and applied on a target database.
tia

Did you change default nls_date_format before using print_lcr?
alter session set nls_date_format='MM/DD/YYYY HH24:MI:SS'
Regards,
Sergey

Similar Messages

  • Problem with new DB app, report+form, report works great, form says ORA-01403: no data found

    I have a new table, the PK is a varchar2(5) column, when I allow the default query in the report to do its work, I get all the expected data.  when I click on the edit icon (pencil), I get an error screen indicating ORA-01403: no data found.  I'm hosed!  This was generated by the app!  no changes were made to anything in the app, except to turn off tabs at create time.  I even left the default name.
    My ARF is hitting the right table with the PK column, but finds nothing.  I have the "success" message showing me the PK value.  What could be going on here, and how can it be addressed?  Today is the 1st time I have seen this matter.
    I'm running 4.22 as the workspace admin, I have other apps that work fine (to expectation), my browser is FF22, though I plan a downgrade to 18.  Our DB is 11.1.0.7.

    Jorge, thanks for your attention to my problem, I appreciate any insights, although there is a little clarification I can offer.  Also, if you can, please remind me the tags to use in my text that would properly set off the code snippets or prior message content?
    [you wrote]
    You said you have a "success" message showing you the PK value. Can you elaborate on this?
    The form page, under the ARF, allows for the display of a "success" message and a "failure" message.  I have seen my "success" message appear, but it didn't show my key field as a brought-back value (which I told it to include), and I think now this is not relevant any longer.  I found that there was a link on the report attributes page between #ROWID# and a P2_ROWID that was incorrect (probably from an earlier stage of dev in the app), and I changed this to my key field, and this altered the outcome of the ARF action.  This leads to ....
    [you wrote]
    Can you see the correct PK value in the URL? Does the item parameter match what you expect (correct page item and value)? Perhaps share that full URL here?
    I have expected values in my URL.  The URL does show my key value (tail end of URL underlined here):
    ../apex/f?p=120:2:7519563874482::NO::P2_VCODE:RB15
    [you wrote]
    Debug the page and see which process, item or step is actually failing. You could be running some other process on the form page and that could be what actually fails.  Treat it as if the ARF works correctly and see what else could be happening.
    I can add the detail that my 1st message was based on testing with a table where I set the PK as data type VARCHAR2, but in more testing on the actual app (whose URL piece is above) I am using a PK which is CHAR.
    The result of the debug effort is that APEX has built its own query for pulling back the row in the ARF, and it is joining on my PK field to an APEX item P_ROWID which I don't think I created.  Nor does it appear to offer me any avenue for correcting it.    debug snippet:    where "VCODE" = :p_rowid; end;

  • Help with ORA-01403: no data found please.

    First off I'd like to apologise for my lack of PL/SQL experience, what follows may seem naive, but I guess we all have to start somewhere.
    I'm trying to create a function which determines an employee's Annual Holiday Entitlement by comparing their length of service against a lookup of entitlement values. Due to the complexity of the application I'm targeting there are a number of other factors to be take into consideration, but this is the basic idea of what I want to achieve.
    I've started by taking a working SQL Server 2005 function and converted this using the translation scratch pad in SQL Developer 1.5.1 I'm now hand cranking the subtleties into the script but when I debug the code I'm getting "ORA-01403: no data found" at almost every SELECT. In fact the only successful select is from the ABS_SYSTEM_CONTROLS table. I can handle the first few failures by setting default values in the variables that I'm trying to load, but this isn't an option when it comes to selecting the DATE_OF_START from the PERSON table.
    I've sure I've probably made some fundamental error, but can't spot it myself. Any help would be most welcome.
    I've included the entire script below for your entertainment ;-)
    Thanks
    Phil.
    create or replace
    function mygetannualholidayentitlement
    ( v_empNo in varchar2
    , v_inputDate in DATE
    ) return number as
       -- Declare variables here
       v_entitlement FLOAT(53);
       v_holidayPlan VARCHAR2(20);
       v_contServiceOption VARCHAR2(255);
       v_postNo CHAR(16);
       v_lengthOfService NUMBER(10,2) ; -- Need to give this a default value else the CURSOR (below) won't initialise.
       v_empStartDate DATE;
       -- Load up our loacal variable for each row in the loop and the final value is the one we want.
       v_selectedLOF FLOAT(53);
       v_selectedDateEffective DATE;
       v_selectedAmount FLOAT(53);
       v_effectiveDate DATE;
       -- Cursor declaration
       -- Holiday plan details are also keyed on DATE_EFFECTIVE.  Need to identify which row is active as at our @effectiveDate.
       CURSOR holDefCursor
         IS SELECT length_of_service,
       date_effective,
       amount
         FROM holiday_plan_def
          WHERE hplan_code = v_holidayPlan
         AND length_of_service < v_lengthOfService
         ORDER BY date_effective ASC,
       length_of_service ASC;
    BEGIN
       -- Initialise variables --
       -- truncate any hours/Mins & secs from effective date
       v_effectiveDate := trunc(v_inputdate);
       v_entitlement := 0;
       v_contServiceOption := 0;
       v_lengthOfService := 0;
       BEGIN
       SELECT HPLAN_CODE
         INTO v_holidayPlan
         FROM APPT_HOLIDAY_BALANCE
          WHERE emp_no = v_empNo
                  --          post_no = @postNo and
                  AND ( v_effectiveDate BETWEEN HOLIDAY_YEAR_START AND HOLIDAY_YEAR_END );
       EXCEPTION
       WHEN NO_DATA_FOUND THEN
          v_holidayplan:=NULL;
       WHEN OTHERS THEN
           raise_application_error(-20011,'Unknown Exception in MyGetAnnualHolidayEntitlement function.');
       END;
       -- Still no hoildayPlan? Then use the default plan code from ABS_SYSTEM_CONTROLS.
       IF v_holidayPlan IS NULL THEN
          SELECT HPLAN_CODE
            INTO v_holidayPlan
            FROM ABS_SYSTEM_CONTROLS ;
       END IF;
       BEGIN
        SELECT OPTION_VALUE
          INTO v_contServiceOption
          FROM PS_OPTIONS
           WHERE OPTION_NAME = 'CONTINUOUS_SERVICE_OPTION';
       EXCEPTION
       WHEN NO_DATA_FOUND THEN
          v_contServiceOption := 'N' ;
       WHEN OTHERS THEN
           raise_application_error(-20011,'Unknown Exception in MyGetAnnualHolidayEntitlement function.');
       END;
       IF v_contServiceOption = 'Y' THEN
       BEGIN
          -- Need to take into account the employees CONTINUOUS_SERVICE_DATE when calculating length of service
          BEGIN
          SELECT CONTINUOUS_SERVICE_DATE
            INTO v_empStartDate
            FROM person
             WHERE emp_no = v_empNo;
          EXCEPTION  
            WHEN NO_DATA_FOUND THEN
              v_empStartDate := NULL;
            WHEN OTHERS THEN
              raise_application_error(-20011,'Unknown Exception in MyGetAnnualHolidayEntitlement function.');
          END;
          -- If we can't get a CONTINUOUS_SERVICE_DATE we will fall back to PERSON.DATE_OF_START
          IF v_empStartDate IS NULL THEN
          BEGIN
             SELECT DATE_OF_START
               INTO v_empStartDate
               FROM PERSON
                WHERE emp_no = v_empNo;
          EXCEPTION  
            WHEN OTHERS THEN
              raise_application_error(-20011,'Unknown Exception in MyGetAnnualHolidayEntitlement function.');
          END;
          END IF;
       END;
       ELSE
       BEGIN
          -- Need to use employees DATE_OF_START when calculating length of service
          SELECT DATE_OF_START
            INTO v_empStartDate
            FROM PERSON
             WHERE emp_no = v_empNo;
       END;
       END IF;
       -- Now we can get length of service
       v_lengthOfService := sqlserver_utilities.datediff('MONTH', v_empStartDate, v_effectiveDate) / 12.00;
       OPEN holDefCursor;
       FETCH holDefCursor INTO v_selectedLOF,v_selectedDateEffective,v_selectedAmount;
       WHILE ( sqlserver_utilities.fetch_status(holDefCursor%FOUND) = 0 )
       LOOP
          BEGIN
             IF v_selectedDateEffective < v_effectiveDate THEN
                v_entitlement := v_selectedAmount;
             END IF;
             -- Get the next value.
             FETCH holDefCursor INTO v_selectedLOF,v_selectedDateEffective,v_selectedAmount;
          END;
       END LOOP;
       CLOSE holDefCursor;
       -- Return the result of the function
       RETURN v_entitlement;
    END;Edited by: user4395499 on 27-Oct-2008 04:04
    Edited by: user4395499 on 27-Oct-2008 04:05
    Edited by: user4395499 on 27-Oct-2008 07:10

    Your code is extremely procedural - whilst you could ultimately get it to work like this, it is not the most efficient way of doing it.
    You should think about reducing your code to one sql statement if at all possible - this reduces the amount of context switching that needs to take place (eg. Going from PL/SQL to SQL back to PL/SQL to SQL, etc) and is usually much easier to maintain and test. You could do this by joining the various tables together, (and you might want to think about using nvl() to combine the two queries on the PERSON table!).
    Also, you've labelled your parameters "v_" and your variables "v_" ... common convention uses "p_" for parameters, to allow for easy distinction between parameters passed in and variables declared during the course of the procedure/function.
    As to the char() defined column - is there any chance that you could change that? As you've found out, chars are usually not a good datatype to use! Storing numbers in a char/varchar2 column is a no-no too, as you then run the risk of having invalid numbers stored in the column.

  • Error saving column settings with ORA-01403: no data found Error

    Hi
    I have a region with multi row report updatable.
    When I am trying to change the query I am getting below error.
    Anybody let me know what will be the problem.
    ORA-01403: no data found
    Error saving column settings
    Regards
    Kiran

    Hi
    I was using below query for this region.
    SELECT
    result.segment1 Item#,
              result.inventory_item_id,
              result.revision,
              result.lot_number,
              result.Lot_Onhand,
              result.Heat,
              result.Cert_Site_Number Cert_Site_Number_Display,
              result.status_code Status_Code_Display,
    result.Cert_ID Cert_ID_Display,
              result.Cert_Site_Number,
              result.status_code,
    result.Cert_ID,
              result.transaction_id,
    result.po_header_id,
    result.po_line_id,
    result.rcv_transaction_id,
    result.shipment_header_id,
    result.shipment_line_id
    FROM          
    SELECT      
    msi.segment1,
              mmt.inventory_item_id,
              mmt.revision,
              mtln.lot_number,
              xx_utility_pkg.get_available_qty(mmt.inventory_item_id,mmt.organization_id,mmt.subinventory_code,mtln.lot_number,'ONHAND') Lot_Onhand,
              mtln.attribute1 Heat,
              mtln.attribute2 Cert_Site_Number,
              mms.status_code,
                        (          SELECT     clx.cert_id
                        FROM     xxqc.cert_mst cm,
                                  xxqc.cert_lot_xref clx
                        WHERE      cm.cert_id = clx.cert_id
                        AND cm.cert_type='MILL'
                        AND     clx.lot_no = mtln.lot_number
              ) Cert_ID,
              mmt.transaction_id,
              rsl.po_header_id,
              rsl.po_line_id,
    mmt.rcv_transaction_id,
    rt.shipment_header_id,
    rsl.shipment_line_id
    FROM      mtl_material_transactions mmt,
              mtl_transaction_lot_numbers mtln,
              mtl_material_statuses_tl mms,
              rcv_transactions rt,
              rcv_shipment_headers rsh,
              rcv_shipment_lines rsl,
    mtl_system_items_b msi
    WHERE     mmt.transaction_id = mtln.transaction_id
    AND          mmt.organization_id = mtln.organization_id
    AND          mtln.status_id = mms.status_id
    AND          rt.transaction_id = mmt.rcv_transaction_id
    AND          rsh.shipment_header_id = rt.shipment_header_id
    AND          rsl.shipment_header_id = rsh.shipment_header_id
    AND          rsh.organization_id = mmt.organization_id
    AND          rsl.item_id = mmt.inventory_item_id
    AND msi.inventory_item_id=rsl.item_id
    AND msi.organization_id = mmt.organization_id
    AND          rsl.po_line_id = DECODE(:P5_PO_LINE_NUMBER, 0,rsl.po_line_id,:P5_PO_LINE_NUMBER)
    AND rsl.po_header_id IN (     SELECT     po_header_id
                        FROM      po_headers_all
                        WHERE      segment1 = :P5_PO_NUMBER
                        AND      org_id = :P5_ORG_ID)
    AND          mtln.status_id = 90 -- Which is 'T' Status means Temporary
    AND          mmt.transaction_action_id = 27
    AND          mmt.transaction_source_type_id = 1
    AND          mmt.transaction_type_id = 18
    ) result
    WHERE result.Lot_Onhand > 0
    when I use above query I am able to update the region perfectly.
    But when I comment last WHERE CONDITION I am getting above problem.
    What could be the possilbe reason for this?
    Regards
    Kiran Akkiraju

  • Login on user group with redirect ORA-01403: no data found

    Hi,
    i have 3 home page, one for each user group
    I would like to address the home page based on the value the group's
    i tried to do this with a process on login page
    :FSP_AFTER_LOGIN_URL := null;
    declare l_page varchar2(30);
    begin
    SELECT gr.GRP_ID
    into :P101_GRP_ID
    FROM DB1USG ug, DB0USR us
    WHERE
    AND us.USR_ID=:P101_USERNAME
    AND us.USR_ID=ug.USG_USR_ID;
    if :P101_GRP_ID = 'CPY' then l_page := '5007';
    elsif :P101_GRP_ID = 'TRF' then l_page := '5005';
    elsif :P101_GRP_ID = 'VND' then l_page := '7051';
    else l_page := '1'; -- default home page
    end if;
    wwv_flow_custom_auth_std.login(
    P_UNAME => :P101_USERNAME,
    P_PASSWORD => :P101_PASSWORD,
    P_SESSION_ID => v('APP_SESSION'),
    P_FLOW_PAGE => :APP_ID||':'||l_page
    end;
    after password input i received ORA-01403: no data found error
    Any help?
    Thanks in advance
    km

    Hi Scott,
    first access
    user USR1--> page afer login --> 7051 ->OK
    logout
    user USR2-->page right 5007
    page afer login --> 7051 --> no 5007
    Scott,
    in process on login page i added the line
    :P0_FIRST_PAGE_ID := l_page;
    and
    i modified logout URL on my Authentication Scheme
    wwv_flow_custom_auth_std.logout?p_this_flow=&APP_ID.&p_next_flow_page_sess=&APP_ID.:&P0_FIRST_PAGE_ID.
    Many thanks
    km

  • Import job failes with ORA-01403: no data found ORA-06512: at "SYSMAN.MGMT

    Hello everyone,
    I need a help on importing data from a schema in server 1 to the same schema in server 2 via network link. I receive following error when I try to submit a job on Enterprise Manager:
    Import Submit Failed
    ORA-01403: no data found ORA-06512: at "SYSMAN.MGMT_JOB_ENGINE", line 5806 ORA-06512: at "SYSMAN.MGMT_JOB_ENGINE", line 7812 ORA-06512: at "SYSMAN.MGMT_JOB_ENGINE", line 8608 ORA-01403: no data found ORA-06512: at "SYSMAN.MGMT_JOBS", line 273 ORA-06512: at "SYSMAN.MGMT_JOBS", line 86 ORA-06512: at line 1
    Sql of the job:
    declare
    h1 NUMBER;
    begin
    h1 := dbms_datapump.open (operation => 'IMPORT', job_mode => 'FULL', remote_link => 'B_PROD_LINK', job_name => 'BIMPORTFRMPRDTORPT4', version => 'COMPATIBLE');
    dbms_datapump.set_parallel(handle => h1, degree => 1);
    dbms_datapump.add_file(handle => h1, filename => 'IMPORT.LOG', directory => 'DATA_PUMP_DIR', filetype => 3);
    dbms_datapump.set_parameter(handle => h1, name => 'KEEP_MASTER', value => 0);
    dbms_datapump.set_parameter(handle => h1, name => 'INCLUDE_METADATA', value => 1);
    dbms_datapump.set_parameter(handle => h1, name => 'ESTIMATE', value => 'BLOCKS');
    dbms_datapump.set_parameter(handle => h1, name => 'REUSE_DATAFILES', value => 0);
    dbms_datapump.set_parameter(handle => h1, name => 'TABLE_EXISTS_ACTION', value => 'TRUNCATE');
    dbms_datapump.set_parameter(handle => h1, name => 'SKIP_UNUSABLE_INDEXES', value => 0);
    dbms_datapump.start_job(handle => h1, skip_current => 0, abort_step => 0);
    dbms_datapump.detach(handle => h1);
    end;
    It says network link is active when I test the network link to make sure its connectivity. I create the network link as a system account. I'm trying to do an import from an Oracle database 10.2.0.2 to 11.2.0.1. My 10g database is on ms windows 2003x64 while my 11g database is on OEL 5.4x64.
    What should I do for now?
    Thank you.
    Edited by: user12144220 on Nov 4, 2012 5:02 AM

    It will be wise to run the Oracle supply streams health check script to check your existing streams environment.
    From the result, you can also open a tar with Oracle to see if they can help you with the setup.
    In addition to the ORA-01403 error, you can also run some of the Oracle Streams packages (Managing Apply Errors) to see the full detail of what is missing that caused the Ora-01403 error.
    I will also try to implement a smoke test using the simple heartbeat table suggested by Oracle Streams, if that is working, then you can begin your full scale setup in your environment knowing that the base Streams Structure is setup correctly.
    HTH

  • Issue with Advanced Replication - ORA-01403: no data found

    Hi,
    got into this weird issue with my replicated environment (9.2.0.5.0 on solaris). We have a bidirectionally replicated table which has been working fine for years but is now showing issues on certain records.
    We had to manually update locally some fields but that's something we did in the past, ensuring both sides were aligned, but this time it does not work.
    The two records are identical but when we try to update on one side the far end fires:
    ERROR at line 1:
    ORA-01403: no data found
    ORA-06512: at "SYS.DBMS_DEFER_SYS_PART1", line 442
    ORA-06512: at "SYS.DBMS_DEFER_SYS", line 1854
    ORA-06512: at "SYS.DBMS_DEFER_SYS", line 1900
    ORA-06512: at line 1
    Thoutght there could be some field out of sync, but the update we execute is quite easy:
    Records on current DBs:
    9495411494 EA10CARD 10 169 0 used 1.0000E+17 31-DEC-99 E-VOUCHER_10_CARD 28-MAR-13 12 10 949541
    9495411494 EA10CARD 10 169 0 used 1.0000E+17 31-DEC-99 E-VOUCHER_10_CARD 28-MAR-13 12 10 949541
    Trying to:
    update ucms_batches set batch_status='new' where serial_no=9495411494;
    commit;
    I see the change locally applied but I see an error reported on the far end. Could not decode the content of the user_data completely, the only thing I could get was:
    3.45.53207 0 0 ?
    OPS$SCNCRAFT? UCMS_BATCHES$RP?
    REP_UPDATE? ?A
    !? used? new?EA10CARD??Y
    7
    Y?'
    !?AE-VOUCHER_10_CARD??AF!????_`*!??!?A
    !????_`*_!?E
    !??? NSMS_MASTERDEF.RMS? N
    Is there anyway I could verify the SQL attempted on the far end with the data used to match the record?
    Thanks
    Mike

    Found a solution using dump function to get the data decoded and compare them across nodes.
    It came out a date field was not matching the hh:mm:ss values.
    Thanks
    Mike

  • PLSQL function body returning an sql report returns ORA-01403 No Data Found

    I am on APEX 3.1.2.00.02 and Oracle 10g.
    I am developing a report with SQL Query (PL/SQL function body returning SQL query) type. But on running the report I am getting
    report error:
    ORA-01403: no data found
    Region Source
    declare
      qry varchar2(32767);
    begin
      --Procedure call
      my_pkg.get_query(qry);
      htp.p(qry);
      return /*select 1 from dual */ qry;
    end;
    Procedure
    PROCEDURE get_query (V_QRY OUT VARCHAR2)
    IS
      qry varchar2(32767);
    begin
      qry := ' select name
         , max(decode(to_char(service_date,''Mon-YY''), ''Jan-09'', value, null)) as "Jan-09"
         , max(decode(to_char(service_date,''Mon-YY''), ''Jan-09'', value, null)) as "Feb-09"
         from MY_TABLE
         group by name ';
      V_QRY := qry;
    end;
    The query will be enhanced later to add more months and year based on user parameters once I am successfull in running report on this.
    I wish to use Query Specific Column names. I have seen this suggestion from Scott in a number of threads to use /*select 1 from dual */ with query but not working in my case.
    Can someone please suggest what can I do to make it working?
    Regards,
    Amir

    Firstly, have you unit tested the procedure (namely, within the SQL Workshop, SQL*Plus, SQL Developer,etc, etc.) to see if it produces the right output in the first place?
    If you have, and the query string generated is valid, try assigning the output to a page item (thus allowing you to view it in the session browser) or even pass the procedure output into the debug window (with the use of the wwv_flow.debug function). This might reveal some state or session change which is causing it not to return.You might find this easier to achieve if you change from a 'procedure and out parameter' combination to a 'function returning string' approach.
    Alternatively, try re-creating the report in a new region - occasionally I've come across weird bugs with report regions which resolved themselves in this manner.

  • Misterious "ORA-01403: no data found" error

    Hi,
    I've been searching through the forum and the Internet with no results, so I'm posting here hoping you can help me.
    Here is the situation: I had a page 30 with a tree branching to a form on a view.This worked fine until one day that suddenly, we got the "ORA-01403: no data found" error when loading the page. I guess that's normal, since the form shows the data filtered in the tree (in the tree we click on an element and pass its ROWID to the form), and when we load the page no ROWID is selected. So, the first question would be, how can I manage this situation? My first option was to have a condition in the Automatic Fetch for the Form, so that it's executed only when the ROWID item is not null. It worked a couple of times. After a while, it crashed again.
    Tired of trying things, we decided to copy this page 30 to another page (page #80). Surprisingly, page #80 worked meanwhile #30 crashed. And they are completely the same, the data has not changed either.
    Could it be that page #30 somehow is corrupted? It's really strange that the same exact copy of the page works with one ID but not with another one.
    Has someone experienced this situation? it makes me feel like the app is unsecure and unstable. Any ideas, please?
    Apex version: 4.1.1 on APEX listener.
    Thanks,
    Elena.

    fac586 wrote:
    Elena.mtc wrote:
    Thanks for your response. The form is a single row (a form on a table or view). Here is what I've found out thanks to your tips:
    It affects to all the three users that I have access with.Try it with a new user that has never accessed the page before.
    I used the debug mode (new to me, so I'm kind of slow on this, still) and wrote an exception message on the Automatic Fetch Row and I managed to know the ROWID that the fetch process is using in the where clause. Of course this ROWID does not exist in the table, so the first question that comes to my mind is "how come and from where is the page getting this ROWID?". I don't know and can't comment because I can't see the app. ;-)
    If the ROWID is stored in an item, check the Maintain session state property isn't set to Per User.I changed this and seemed to work. But it crashed later. I made a computation process to set to null the rowid's when loading the page. After reset, I deleted the computations (due to application functionality) and it worked. However, I do not trust this page anymore. So we created a new fresh app and copied this page. Luckily we are on development environment :)
    >
    So, I made a computation to initialize to null the item that saves the ROWID, and now it worked.
    This page that I'm testing on is #30, but the valid page is #80 (it has changes made on the look and feel of the page). So, I deleted page #30, and copied page #80 (which works perfectly) into #30. And it crashes again (obvius, since it doesn't have the computation that gives null to the rowid item). What's "interesting" is that I still see the exception message I wrote in the older version of page #30. So, it seems that some values need to be purged and that the delete is not clean, but how? I'm not entirely clear on what you've been doing there, but it does indeed all sound rather odd.
    I suspect that you wouldn't be able to reproduce this problem on apex.oracle.com. However, it would probably be helpful if you could upload the app and provide developer credentials to the workspace so we could see how it works and if there's anything obvious (or not) that might cause this problem.Unluckily I cannot do this. Thank you anyway for the help, it's hard to explain when something so weird happens.
    Thanks!
    Elena.

  • Ora-01403: no data found error in stead off messag

    Hi all,
    In a form there is a button that calls a stored procedure. In this procedure certain checks are made and if violated, QMS$ERRORS.SHOW_MESSAGE is called. Normally we can see the message text from the messages table. However, in this paricular situation we receive ora-01403: no data found. The message shows up later, when another message is invoked.
    So, our conclusion is that the stack is not correctly read.
    Problem occurs in Client server as in Webforms.
    Architecture:
    - Designer 6.0.3.9.0
    - Forms 6.0.5.34.0
    - Oracle 8.0.5.2.1
    - Windows NT 4.0 SP5 on Client as on Server
    - Oracle Forms Generator 6.0.3.2.0
    - Headstart Template Package 5.0.4
    Template Form (qmstpl50) 5.0.2
    Object Library (qmsolb50 (WEB)) 5.0.4
    Event Handler Library (qmsevh50) 5.0.3.2
    Core Library (qmslib50) 5.0.4
    Thanks in advance,
    Joep Hendrix
    [email protected]

    Sandra,
    It just happens that I am confronted with the same ora message (0ra-01403) raised apparently under similar conditions. The solution you presented, however, does not help much I am afraid in my case.
    I use a qms$errors.show_message statement in a procedure stored in a package on the database. This raises the same error that Joep receives (ora-01403). If I remove the qms$errors.show_message statement from the package no error is raised. If I use the statement in a form trigger I also do not encounter any problems. It therefore appears that the statement can not be raised from the serverside although according to the headstart 5.0.3 documentation that problem is resolved (issue 792479).
    In the headstart documentation I find a reference to qms$errors.DisplayServerQMSError. However, maybe this is outdated. This component is not included the qms$error package I have.
    Any suggestions to solve this?
    My system
    Forms 6.0.8.10.3
    Designer 7.04
    Headstart 5.04
    Oracle 8i Enterprise Edition 8.1.7
    Windows NT4
    <BLOCKQUOTE><font size="1" face="Verdana, Arial">quote:</font><HR>Originally posted by Headstart Team:
    Joep,
    If you don't use the CDM RuleFrame version of the Headstart Template Package, normally only one message should be on the stack. It seems like in this case you have 2 messages on the stack: ORA-01403 and your custom message, and only the first is shown.
    It should not occur that there are 2 messages on the stack. Have you debugged what causes the ORA-01403? Can you catch the exception so that only your own custom message is shown?
    Hope this helps,
    Sandra<HR></BLOCKQUOTE>
    null

  • Oracle error 1403:java.sql.SQLException: ORA-01403: no data found ORA-06512

    My customer has an issue, and error message as below:
    <PRE>Oracle error 1403: java.sql.SQLException: ORA-01403: no data found ORA-06512:
    at line 1 has been detected in FND_SESSION_MANAGEMENT.CHECK_SESSION. Your
    session is no longer valid.</PRE>
    Servlet error: An exception occurred. The current application deployment descriptors do not allow for including it in this response. Please consult the application log for details.
    And customer’s statement is: Upgrade from EBS 11.5.10 to 12.1.3. Login the EBS, open any forms and put it in idle. Then refresh the form, error happens
    Then, I checked ISP, and found two notes:
    Note 1284094.1: Web ADI Journal Upload Errors With ORA-01403 No Data Found ORA-06512 At Line Has Been Detected In FND_SESSION_MANAGEMENT.CHECK_SESSION.Your Session Is No Longer Valid (Doc ID 1284094.1)
    Note 1319380.1: Webadi Gl Journal Posting Errors After Atg R12.1.3 (Doc ID 1319380.1)
    But these two notes are both WebADI.
    Following is the data collection from customer:
    1. Run UNIX command to check .class file version:
    strings $JAVA_TOP/oracle/apps/bne/utilities/BneViewerUtils.class | grep Header--> S$Header: BneViewerUtils.java 120.33.12010000.17 2010/11/21 22:19:58 amgonzal s$
    2. Run SQL to check you patch level:
    SELECT * FROM fnd_product_installations WHERE patch_level LIKE '%BNE%';--> R12.BNE.B.3
    3. Run SQL to check patch '9940148' applied or not:
    SELECT * FROM ad_bugs ad WHERE ad.bug_number = '9940148';--> No Rows returned
    4. Run SQL to check patch '9785477' applied or not:
    SELECT * FROM ad_bugs WHERE bug_number in ('9785477');-->
    BUG_ID APPLICATION_SHORT_NAME BUG_NUMBER CREATION_DATE ARU_RELEASE_NAME CREATED_BY LAST_UPDATE_DATE LAST_UPDATED_BY TRACKABLE_ENTITY_ABBR BASELINE_NAME GENERIC_PATCH LANGUAGE
    576982 11839583 2011/8/7 上午 08:20:36 R12 5 2011/8/7 上午 08:20:36 5 pjt B n US
    516492 9785477 2011/6/12 上午 11:42:45 R12 5 2011/6/12 上午 11:42:45 5 bne B n US
    546109 9785477 2011/6/12 下午 01:17:41 R12 5 2011/6/12 下午 01:17:41 5 bne B n ZHT
    5. Run SQL to check the status of object ‘FND_SESSION_MANAGEMENT’
    SELECT * FROM dba_objects do WHERE do.object_name = 'FND_SESSION_MANAGEMENT';-->
    OWNER OBJECT_NAME SUBOBJECT_NAME OBJECT_ID DATA_OBJECT_ID OBJECT_TYPE CREATED LAST_DDL_TIME TIMESTAMP STATUS TEMPORARY GENERATED SECONDARY NAMESPACE EDITION_NAME
    APPS FND_SESSION_MANAGEMENT 219425 PACKAGE 2004/10/30 下午 01:52:35 2011/8/7 上午 08:18:39 2011-08-07:08:18:26 VALID N N N 1
    APPS FND_SESSION_MANAGEMENT 226815 PACKAGE BODY 2004/10/31 上午 01:05:40 2011/8/7 上午 08:18:54 2011-08-07:08:18:27 VALID N N N 2
    So, my question is: Customer’s BneViewerUtils.java version is already 120.33.12010000.17, which greater than 120.33.12010000.14. Is there any others solutions for this issue? Does customer still need to apply patch '9940148' based on action plan of
    Note 1284094.1: Web ADI Journal Upload Errors With ORA-01403 No Data Found ORA-06512 At Line Has Been Detected In FND_SESSION_MANAGEMENT.CHECK_SESSION.Your Session Is No Longer Valid?
    Customer's EBS version is 12.1.3; OS is HP-UX PA-RISC (64-bit); DB is 11.2.0.2.
    Thanks,
    Jackie

    And customer’s statement is: Upgrade from EBS 11.5.10 to 12.1.3. Login the EBS, open any forms and put it in idle. Then refresh the form, error happens
    Idle for how long? Is the issue with all sessions?
    Please see these docs/links
    User Sessions Get Timed Out Before Idle Time Parameter Values Are Reached [ID 1306678.1]
    https://forums.oracle.com/forums/search.jspa?threadID=&q=Timeout+AND+R12&objID=c3&dateRange=all&userID=&numResults=15&rankBy=10001
    Then, I checked ISP, and found two notes:
    Note 1284094.1: Web ADI Journal Upload Errors With ORA-01403 No Data Found ORA-06512 At Line Has Been Detected In FND_SESSION_MANAGEMENT.CHECK_SESSION.Your Session Is No Longer Valid (Doc ID 1284094.1)
    Note 1319380.1: Webadi Gl Journal Posting Errors After Atg R12.1.3 (Doc ID 1319380.1)
    But these two notes are both WebADI.Can you find any details about the error in Apache log files and in the application.log file?
    Any errors in the database log file?
    So, my question is: Customer’s BneViewerUtils.java version is already 120.33.12010000.17, which greater than 120.33.12010000.14. Is there any others solutions for this issue? No.
    Does customer still need to apply patch '9940148' based on action plan ofIf the issue not with Web ADI, then ignore this patch. However, if you use Web ADI you could query AD_BUGS table and verify if you have the patch applied.
    Note 1284094.1: Web ADI Journal Upload Errors With ORA-01403 No Data Found ORA-06512 At Line Has Been Detected In FND_SESSION_MANAGEMENT.CHECK_SESSION.Your Session Is No Longer Valid?
    Customer's EBS version is 12.1.3; OS is HP-UX PA-RISC (64-bit); DB is 11.2.0.2.If you could not find any details in the logs, please enable debug as per (R12, 12.1 - How To Enable and Collect Debug for HTTP, OC4J and OPMN [ID 422419.1]).
    Thanks,
    Hussein

  • ORA-01403: no data found Problem when using AUTOMATIC ROW FETCH to populate

    ORA-01403: no data found Problem when using AUTOMATIC ROW FETCH to populate a form.
    1) Created a FORM on EMP using the wizards. This creates an AUTOMATIC ROW FETCH
    TABLE NAME - EMP
    Item Containing PRIMARY KEY - P2099_EMPNO
    Primary key column - EMPNO
    By default the automatic fetch has a ‘Process Error Message’ of ‘Unable to fetch row.’
    2) Created a HTML region. Within this region add
    text item P2099_FIND_EMPNO
    Button GET_EMP to submit
    Branch Modified the conditional branch created during button creation to set P2099_EMPNO with &P2099_FIND_EMPNO.
    If I then run the page, enter an existing employee number into P2099_EMPNO and press the GET_EMP button the form is populated correctly. But if I enter an employee that does not exist then I get the oracle error ORA-01403: no data found and no form displayed but a message at the top of the page ‘Action Processed’.I was expecting a blank form to be displayed with the message ‘Unable to fetch row.’
    I can work around this by making the automated fetch conditional so that it checks the row exists first. Modify the Fetch row from EMP automated fetch so that it is conditional
    EXIST (SQL query returns at least one row)
    select 'x'
    from EMP
    where EMPNO = :P2099_EMPNO
    But this means that when the employee exists I must be fetching from the DB twice, once for the condition and then again for the actual row fetch.
    Rather than the above work around is there something I can change so I don’t get the Oracle error? I’m now wondering if the automatic row fetch is only supposed to be used when linking a report to a form and that I should be writing the fetch process manually. The reason I haven’t at the moment is I’m trying to stick with the automatic wizard generation as much as I can.
    Any ideas?
    Thanks Pete

    Hi Mike,
    I've tried doing that but it doesn't seem to make any difference. If I turn debug on it shows below.
    0.05: Computation point: AFTER_HEADER
    0.05: Processing point: AFTER_HEADER
    0.05: ...Process "Fetch Row from EMP": DML_FETCH_ROW (AFTER_HEADER) F|#OWNER#:EMP:P2099_EMPNO:EMPNO
    0.05: Show ERROR page...
    0.05: Performing rollback...
    0.05: Processing point: AFTER_ERROR_HEADER
    I don't really wan't the error page, either nothing with the form not being populated or a message at the top of the page.
    Thanks Pete

  • "ORA-01403 no data found" on TableAdapter Update

    I have a C# application with an Oracle TableAdapter with which I am calling an insert function like this:
    mtTestResultsTableAdapter.InsertResults(grp_dscr, grp_id, tst_id, tran_type_dscr, tran_mod_dscr, tst_dts, c_rslt, vb6_rslt, cmp_rslt, c_tm, vb6_tm, tst_errs);
    I am getting Oracle exception "ORA-01403 no data found" on this call. I am not sure why I'm getting the error, this is the SQL it is supposed to run:
    INSERT INTO "TEST_UTIL_RESULTS" ("GRP_DSCR", "GRP_ID", "TST_ID", "TRAN_TYPE_DSCR", "TRAN_MOD_DSCR", "TST_DTS", "C#_RSLT", "VB6_RSLT", "CMP_RSLT", "C#_TM", "VB6_TM", "TST_ERRS") VALUES (:GRP_DSCR, :GRP_ID, :TST_ID, :TRAN_TYPE_DSCR, :TRAN_MOD_DSCR, :TST_DTS, :C#_RSLT, :VB6_RSLT, :CMP_RSLT, :C#_TM, :VB6_TM, :TST_ERRS)
    I ran the SQL directly from TOAD, and it worked fine with no issues. Maybe the TableAdapter is running some other sort of query before calling Insert?
    Everything I tried still gave me the same error. I posted this on MSDN but got no reply. It is very frustrating, has anyone encountered this, or does anyone have any idea how to debug this? Thank you in advance.

    I changed my function to use a Stored Procedure instead of direct sql, but that made no difference. I think the problem has something to do with the fact that 4 of the fields (C#_RSLTS, VB6_RSLTS, CMP_RSLTS, and TST_ERRS) are of type "Clob" in the DB. What do I need to do to get it to work with my Clob fields?

  • I am getting ORA-01403: no data found error while calling a stored procedur

    Hi, I have a stored procedure. When I execute it from Toad it is successfull.
    But when I call that from my java function it gives me ORA-01403: no data found error -
    My code is like this -
    SELECT COUNT(*) INTO L_N_CNT FROM TLSI_SI_MAST WHERE UPPER(CUST_CD) =UPPER(R_V_CUST_CD) AND
    UPPER(ACCT_CD)=UPPER(R_V_ACCT_CD) AND UPPER(CNSGE_CD)=UPPER(R_V_CNSGE_CD) AND
    UPPER(FINALDEST_CD)=UPPER(R_V_FINALDEST_CD) AND     UPPER(TPT_TYPE)=UPPER(R_V_TPT_TYPE);
         IF L_N_CNT >0 THEN
              DBMS_OUTPUT.PUT_LINE('ERROR -DUPlicate SI-1');
              SP_SEL_ERR_MSG(5,R_V_ERROR_MSG);
              RETURN;
         ELSE
              DBMS_OUTPUT.PUT_LINE('BEFORE-INSERT');
              INSERT INTO TLSI_SI_MAST
                   (     CUST_CD, ACCT_CD, CNSGE_CD, FINALDEST_CD, TPT_TYPE,
                        ACCT_NM, CUST_NM,CNSGE_NM, CNSGE_ADDR1, CNSGE_ADDR2,CNSGE_ADDR3,
                        CNSGE_ADDR4, CNSGE_ATTN, EFFECTIVE_DT, MAINT_DT,
                        POD_CD, DELVY_PL_CD, TRANSSHIP,PARTSHIPMT, FREIGHT,
                        PREPAID_BY, COLLECT_BY, BL_REMARK1, BL_REMARK2,
                        MCC_IND, NOMINATION, NOTIFY_P1_NM,NOTIFY_P1_ATTN , NOTIFY_P1_ADDR1,
                        NOTIFY_P1_ADDR2, NOTIFY_P1_ADDR3, NOTIFY_P1_ADDR4,NOTIFY_P2_NM,NOTIFY_P2_ATTN ,
                        NOTIFY_P2_ADDR1,NOTIFY_P2_ADDR2, NOTIFY_P2_ADDR3, NOTIFY_P2_ADDR4,
                        NOTIFY_P3_NM,NOTIFY_P3_ATTN , NOTIFY_P3_ADDR1,NOTIFY_P3_ADDR2, NOTIFY_P3_ADDR3,
                        NOTIFY_P3_ADDR4,CREATION_DT, ACCT_ATTN, SCC_IND, CREAT_BY, MAINT_BY
                        VALUES(     R_V_CUST_CD,R_V_ACCT_CD,R_V_CNSGE_CD,R_V_FINALDEST_CD,R_V_TPT_TYPE,
                        R_V_ACCT_NM,R_V_CUST_NM ,R_V_CNSGE_NM, R_V_CNSGE_ADDR1,R_V_CNSGE_ADDR2, R_V_CNSGE_ADDR3,
                        R_V_CNSGE_ADDR4,R_V_CNSGE_ATTN,     R_V_EFFECTIVE_DT ,SYSDATE, R_V_POD_CD,R_V_DELVY_PL_CD,R_V_TRANSSHIP ,R_V_PARTSHIPMT , R_V_FREIGHT,
                        R_V_PREPAID_BY ,R_V_COLLECT_BY ,R_V_BL_REMARK1 ,R_V_BL_REMARK2,R_V_MCC_IND,
                        R_V_NOMINATION,R_V_NOTIFY_P1_NM, R_V_NOTIFY_P1_ATTN, R_V_NOTIFY_P1_ADD1, R_V_NOTIFY_P1_ADD2,
                        R_V_NOTIFY_P1_ADD3, R_V_NOTIFY_P1_ADD4, R_V_NOTIFY_P2_NM, R_V_NOTIFY_P2_ATTN, R_V_NOTIFY_P2_ADD1,
                        R_V_NOTIFY_P2_ADD2, R_V_NOTIFY_P2_ADD3, R_V_NOTIFY_P2_ADD4, R_V_NOTIFY_P3_NM, R_V_NOTIFY_P3_ATTN,
                        R_V_NOTIFY_P3_ADD1, R_V_NOTIFY_P3_ADD2, R_V_NOTIFY_P3_ADD3, R_V_NOTIFY_P3_ADD4,
                        SYSDATE,R_V_ACCT_ATTN,R_V_SCC_IND,R_V_USER_ID,R_V_USER_ID
                        DBMS_OUTPUT.PUT_LINE(' SI - REC -INSERTED');
         END IF;

    Hi,
    I think there is a part of the stored procedure you did not displayed in your post. I think your issue is probably due to a parsed value from java. For example when calling a procedure from java and the data type from java is different than expected by the procedure the ORA-01403 could be encountered. Can you please show the exact construction of the call of the procedure from within java and also how the procedure possible is provided with an input parameter.
    Regards, Gerwin

  • Forms application returns "ORA-01403 no data found" exception on Windows 7

    Hi everyone,
    I am currently involved in an application compatibility project for an O/S migration from Windows XP to Windows 7.
    We have a legacy Oracle Dev6i P18 Forms application that has been working perfectly on Windows XP for the last decade or so. When we installed the same application on Windows 7, it returned a pop-up error message with the text: "ORA-01403 no data found" when performing a certain operation (clicking on a Submit button in a specific form). The same operation works successfully on Windows XP displaying the message "Submit has been successful".
    This error is well documented and the solution involves adding an exception handler to the faulting SQL statement(s) in order to handle the ORA-01403 exception. Unfortunately, the application is composed of compiled forms (.FMX) and we no longer have the source code so I can't implement this solution.
    I ran a file comparison utility (WinDiff from the Windows SDK) and confirmed that all the files in the application folder and the Oracle Dev6i P18 folder are identical on both the Windows XP and Windows 7 systems.
    I enabled tracing in SQLNet.ORA by configuring TRACE_LEVEL_CLIENT=SUPPORT (I know, too verbose) and other related settings on both systems and have uploaded the traces to my SkyDrive for public viewing:
    http://sdrv.ms/10BNYtI
    The traces show that the "ORA-01403" exception occurs many times on both Windows XP and Windows 7 systems as a result of various SQL statements being executed, for instance:
    SELECT TASK_ID,TASK_DETAIL_STATUS,ASSIGNED_DATE FROM TASK_DETAILS WHERE TASK_ID = :b1 AND TASK_DETAIL_STATUS = (SELECT ID FROM V_TASK_STATUS WHERE ABBREVIATION = 'PLANNED' ) FOR UPDATE OF TASK_DETAIL_STATUS,ASSIGNED_DATE
    UPDATE TASK_DETAILS SET ASSIGNED_DATE=NTMS_UTIL.GET_SERVER_DATE,TASK_DETAIL_STATUS=(SELECT ID FROM V_TASK_STATUS WHERE ABBREVIATION = 'ASSIGNED' ) WHERE ROWID = :b1
    ORA-01403: no data found.
    So the same error happens on both Windows XP and Windows 7.
    On Windows XP, the error is somehow handled, and does not cause the "Submit" operation to fail.
    On Windows 7, however, the error bubbles to the surface and is displayed to the user, thus halting the "Submit" operation.

    Thank you. I'm well aware that adding an exception handler is the classic solution to the ORA-01403 error. However, like I mentioned in my original post, I don't have the source code. All I have are the compiled .FMX forms so I can't implement such a solution:
    From my original post:
    This error is well documented and the solution involves adding an exception handler to the faulting SQL statement(s) in order to handle the ORA-01403 exception. Unfortunately, the application is composed of compiled forms (.FMX) and we no longer have the source code so I can't implement this solution.

Maybe you are looking for