Running procedures concurrently

Hi,
I am having some issues with the time it takes for one of my packages to complete.
Here is an overview of what it does.
1) Extracts data input last night and populates a specific table - basic raw data with FK's to other tables
2) Validate a given set of data fields, 20 of them, based on the raw data inserted above
I have created one function to validate each data item i.e.
fnc_validate_dob
fnc_vaidate_address
fnc_vaidate_telephone
There are 20 of these, each with varying complexity. They are all called one after the other. Problem is, there are 6 vaidation functions that take approx 15 mins each to complete - so instantly we have 90 mins taken up which is unacceptable.
Is there anyway I can call these so they run concurrently?
Any ideas would be very helpful.
Regards
Mark

Hi,
Each of the functions update a specific table that holds rejections - linked back to the raw data by the key.
The business what to identify what fields are failing and also see the data entered, so they can change business process etc.
Most of the validation functions are pretty straight forward - it is jus the 6 that I am having troubles with, due to the way the data is stored and how it has be extrated.
I will try and post some code to help explain.
Here is the main body of the validation script for a particular field.
    --VALIDATE FIN CLASS CODE
    --AS STORED IN QUESTIONS AND ANSWERS, BRING BACK ALL RECORDS FIRST - INCLUDING
    --NULLS, THEN FILTER THESE TO REMOVE VALID CODES
    INSERT INTO E2e_Rejected_Fin_Class
      (Appt_Id,
       Rejected,
       Value_Entered,
       Control)
      SELECT Ap.Appt_Id,
             0 Rejected,
             (SELECT a."answer_externalcode"
              FROM   Ugp.e_Episode       e,
                     Ugp.e_Answerepisode Ae,
                     Ugp.e_Answer        a,
                     Ugp.e_Question      q
              WHERE  e."episode_id" = Ap.Episode_Id
              AND    ae."episode_id" = e."episode_id"
              AND    a."answer_id" = ae."answer_id"
              AND    q."quest_id" = a."quest_id"
              AND    e."episode_iscurrent" = 1
              AND    q."quest_externalcode" = 'Finclass'),
             Ap.Control
      FROM   E2e_Appointments Ap;
    COMMIT;
    --OPEN CURSOR TO IDENTIFY THOSE RECORDS WITH AN ENTRY AND VALIDATE THEM
    --SET REJECTED = 1 IF THE CODE IS INVALID
    OPEN Cur_Fin_Class;
    LOOP
      FETCH Cur_Fin_Class
        INTO Rec_Fin_Class;
      EXIT WHEN Cur_Fin_Class%NOTFOUND;
      IF Commons.Pkg_Data_Validation.Fnc_Validate_Financial_Class(Rec_Fin_Class.Value_Entered,
                                                                  Rec_Fin_Class.Funder) = 1 THEN
        UPDATE E2e_Rejected_Fin_Class
        SET    Rejected = 1
        WHERE  Fin_Class_Id = Rec_Fin_Class.Fin_Class_Id;
      END IF;
    END LOOP;
    CLOSE Cur_Fin_Class;
    COMMIT;
    --DELETE EVERYTHING FROM TABLE WHERE REJECTED = 0
    DELETE FROM E2e_Rejected_Fin_Class WHERE Rejected = 0;
    COMMIT;And this is the function that is called - returns 1 if fails validation
FUNCTION Fnc_Validate_Financial_Class(Pin_Fin_Class IN VARCHAR2,
                                        Pin_Funder    IN VARCHAR2) RETURN NUMBER IS
    -- Author:  MLLOYD
    -- Purpose: Validate Financial Class - fails if null and funder != 'NONE'
    --          (InsuranceType_code from UG where Self Paid
    -- Created: 22/12/2010
    -- Revision History
    -- Date            Version        Comments
    -- 22/12/2010         1           Created
  BEGIN
    IF Pin_Fin_Class IS NULL
       AND Pin_Funder != 'NONE' THEN
      RETURN 1;
    ELSE
      RETURN 0;
    END IF;
  END Fnc_Validate_Financial_Class;
  -- ************************************************************************************I am thinking that it isnt actually the validation that takes the time, it is the initial data select - I have the DBA's looking at tuning the database for me, as I think the indexes required are there.
It would be great to be able to call the all of the 6 procedures together.
Regards
Mark

Similar Messages

  • Running Report Concurrently (In background)

    Hello every Body,
    In my oracle forms application I have one report that takes long time to finish.
    Can I run it concurrently so the user can continue using the application until the report finish ?
    Any HELP please.
    I am using Oracle developer suite 10g.
    Thanks and regards.
    Edited by: awad on Sep 15, 2012 3:33 AM

    Thank you Prabodh,
    I use this code to run the report :
    Begin
      Repid := Find_Report_Object('Myrep');
      Set_Report_Object_Property(Repid,Report_Execution_Mode,Batch);
      Set_Report_Object_Property(Repid,Report_Comm_Mode,Asynchronous);
      Set_Report_Object_Property(Repid,Report_Destype,'Cashe');
      Set_Report_Object_Property(Repid,Report_Filename,P_Repname);
      Set_Report_Object_Property(Repid,Report_Desformat,P_Desformat);
      Set_Report_Object_Property(Repid,Report_Server,L_Report_Server);
      V_Rep       := Run_Report_Object(Repid,P_Pl_Id);
      Rep_Status := Report_Object_Status(V_Rep);
      While Rep_Status In ('RUNNING','OPENING_REPORT','ENQUEUED') Loop
              Rep_Status := Report_Object_Status(V_Rep);
      End Loop;
      If Rep_Status = 'FINISHED' Then                        
          Web.Show_Document(L_Apps_Server||'/Reports/Rwservlet/Getjobid'||Substr(V_Rep,Instr(V_Rep,'_',-1)+1)||'?'||'Server='||L_Report_Server,'_Blank');
      Else
          Msg_Alert('Error When Running Report');
      End If;
    End;This code is written in a form Procedure under program units node.
    The problem is in the While loop that check fro the status. There is no way to execute this procedure (or the while loop and Web.Show_Document portion) Asynchronously (in other thread or process ) without using command line ?
    Edited by: awad on Sep 16, 2012 2:37 PM

  • Run Child Concurrent Program from Main Concurrent Program

    Hi,
    I'm trying to run Child Concurrent Program from the Main Concurrent Program as below, could you suggest me on below.
    Database:10g
    Main_Concurrent_Program
    =================
    1) Will update staging table XXID_PO_ITM with Batch_id = 1,2,3,4,5
    This staging table has 1000 rows, so every 200 rows will be updated with one of the above batch_id
    This logic is working.
    Child_Concurrent_Program
    ================
    2) Above Main Concurrent Program should call below Child_Concurrent_Program.
    This Child_Concurrent_Program will have parameter batch_id (based on above batch_id)
    So, this Child_Concurrent_Program should kick off with batch_id = 1
    Simillarly, Child_Concurrent_Program should kick off with batch_id = 2
    Child_Concurrent_Program should kick off with batch_id = 3
    Child_Concurrent_Program should kick off with batch_id = 4
    Child_Concurrent_Program should kick off with batch_id = 5
    Could you give me some suggestions on this?
    Thanks.

    Check with FND_SUBMIT for submitting a concurrent job using child dependecies. Keep in mind, that once you call the API ... it spawns it's own thread and and becomes an autonomous process. Control is no longer maintained within the calling package.
    procedure submit_interface_data(p_schedule_date in date,p_mm_header_id in number,p_req_id out number)
    is
      v_user_id            number;
      v_application_id     number;
      v_responsibility_id  number;
    begin
                select user_id
                into   v_user_id
                from   fnd_user
                where  user_name = 'USER123';
                select application_id,
                       responsibility_id
                into   v_application_id,
                       v_responsibility_id
                from   fnd_responsibility_tl
                where  responsibility_name = 'General Warehouse';
      fnd_global.apps_initialize(v_user_id,v_responsibility_id,v_application_id);
      p_req_id := fnd_request.submit_request ( application => 'XYZ',
                           program     => 'MOVE_CONC_SHORT_NAME',
                           description => null,
                           start_time  => p_schedule_date,
                           sub_request => false,
                     argument1   => p_mm_header_id);
      commit;
    exception
    when others
       then
         spl_log_pub.write_exception(transaction_id   => null,
                                     transaction_type => null,
                                     error_message    => '<some error message>' ||
                                     'sqlcode: ' || sqlcode ||
                                     'sqlerrm: ' || sqlerrm);
    end submit_interface_data;Edited by: sreese on May 18, 2012 3:16 PM

  • How to run a Concurrent Program from the back end?

    Hi,
    How to run a Concurrent Program from the back end?
    Is it Possible to see that Concuurent Request id which we run from the back end, in the front end?
    If yes, then Please Give reply how to write the code
    Thanks in Advance,
    Bharathi.S

    This is documented in Chapter 20 of the Application Developers Guide http://download.oracle.com/docs/cd/B53825_03/current/acrobat/121devg.pdf. These MOS Docs also have some information available
    221542.1 - Sample Code for FND_SUBMIT and FND_REQUEST API's
    235359.1 - How to Launch Planning Data Pull MSCPDP using FND_REQUEST.SUBMIT_REQUEST
    HTH
    Srini

  • Error while running procedure for refreshing AWS

    Hello There,
    I am using a procedure which consists the script of refreshing the analytic workspace. I call this procedure from Business objects data services for automatic refresh.
    It used to work perfectly until the recent changes implemented.
    The issue is, when I run the procedure the cube refreshes successfully. When the same procedure is called from BODS, it shows an error.
    Error is :: XOQ-01601: error while loading data for cube dimension "BI_PETRA_DWH.ACTIVITY_TIME"  into analytic workspace
    Underlying DB error is : ORA-01858: a non -numeric character was found where a numeric was expected.
    I dont get this error if I run procedure directly in SQL developer.
    I verified attribues of dimension, there is only one numeric attribute and it is mapped to only numeric columns of view.
    Can you please help me fixing this issue?
    Thanks in advance.

    Hello There,
    I am using a procedure which consists the script of refreshing the analytic workspace. I call this procedure from Business objects data services for automatic refresh.
    It used to work perfectly until the recent changes implemented.
    The issue is, when I run the procedure the cube refreshes successfully. When the same procedure is called from BODS, it shows an error.
    Error is :: XOQ-01601: error while loading data for cube dimension "BI_PETRA_DWH.ACTIVITY_TIME"  into analytic workspace
    Underlying DB error is : ORA-01858: a non -numeric character was found where a numeric was expected.
    I dont get this error if I run procedure directly in SQL developer.
    I verified attribues of dimension, there is only one numeric attribute and it is mapped to only numeric columns of view.
    Can you please help me fixing this issue?
    Thanks in advance.

  • Error while running through concurrent programme

    Hi Everyone,
    I have a report in report builder which is based on a View.
    Its working fine in report builder but when i register the report and try to run
    using Concurrent request,
    Its throwing an error saying
    "View Does Not Exist"
    Any suggestions?
    Thanks
    --Kumar                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   

    Thank you u were right.That issue resolved.
    But now i have one more problem.
    As my report has 18 columns in the output, i have increased the width and height of the report to 180 and 50 and section width and height to 18 and 10 and set the orientation to LandScape.
    Its working fine in the report builder but when i run it in the application, its giving me an error saying that
    "REP-1212: Object Body is not fully enclosed by its enclosing object."
    Any suggestion on this.
    Thanks in advance.
    --Kumar                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           

  • Sourcing : Error while Running Java Concurrent Program

    Hi All,
    Navigations:
    Application: Sourcing
    Responsibility : Sourcing Buyer
    Concurrent Program : Generate and Store Sourcing response spreadsheet
    I am trying to run
    Java Concurrent Program : Generate and Store Sourcing response spreadsheet in SRS Window,
    it completed with Error status.
    Please let me know How can I run this Concurrent Program with Normal status and able to view/save the Output.
    Please provide resolution on this.

    Thanks for your reply..
    Program: Generate and Store Sourcing response spreadsheet
    ShortName: PON_EXPORT_RESPONSE
    Application: Sourcing
    Executable: ExportResponseCp
    Method: Java Concurrent Program
    Responsibility : Sourcing Buyer.
    Has this ever worked? If yes, any changes been done recently?
    => No
    Is this the seeded concurrent program or a custom one?
    => Its seeded program.
    EBS: R12.1.3
    Login as Sourcing Buyer Responsibility :
    When you create RFQ and then Close RFQ and then create Surrogate quote and after you Export the Spreadsheet in SelfService Pages it generates the output.
    But if You run the concurrent program (Generate and Store Sourcing response spreadsheet) it errors out.
    Error : Exception in thread main java .lang.stringIndexOutOfBoundException:
    Thanks..

  • Format changing after running the concurrent program for indentation

    Hi
    I have got an issue regarding indentation in rtf template. Actually in the template I have indentation or numbering in one format like david but after running the concurrent program in the temlate output I am getting the numbering in Latin letters. like
    I
    II
    III
    etc.
    can anyone please send me the resolution for this issue.
    Thanks and regards
    kk

    What is the application release?
    If you are on 11i, please make sure you have (Patch 8198363: INDENTATION PROBLEM WHILE GENERATING RTF OUTPUT USING RTF TEMPLATE) applied and check then.
    Thanks,
    Hussein

  • Java.lang.OutOfMemoryError when running java concurrent program

    Hi,
    i had written a java concurrent program to create the content items into Oracle Content Manager (OCM). Process the records from interface table and create the content items into OCM by calling the API IBC_CITEM_ADMIN_GRP.upsert_item().
    I run the concurrent program with 2000 records in interface table, it's an one to one process, 563 records are processed and 563 content items are created successfully in OCM. After 563 records continuously throws the Exception
    EXCEPTION
    WHEN OTHERS THEN
    DBMS_OUTPUT.put_line('EX - bundle validation others--');
    x_return_status := FND_API.G_RET_STS_ERROR;
    FND_MESSAGE.Set_Name('IBC', 'A_BUNDLE_ERROR');
    FND_MESSAGE.set_token('SITUATION', 'VALIDATION');
    FND_MSG_PUB.ADD;
    IF IBC_DEBUG_PVT.debug_enabled THEN
    IBC_DEBUG_PVT.end_process(
    IBC_DEBUG_PVT.make_parameter_list(
    p_tag => 'OUTPUT',
    p_parms => JTF_VARCHAR2_TABLE_4000(
    'x_return_status', '*** EXCEPTION *** [' || SQLERRM || ']'
    END IF;
    in IBC_CITEM_ADMIN_GRP.validate_attribute_bundle() API.
    Again running the concurrent program it process another 563 records. Can any one help me to fix this issue?
    i figured out the exception. When debug the error, i got the actual error message like this
    ORA-29532: Java call terminated by uncaught Java exception: java.lang.OutOfMemoryError
    ORA-29532: Java call terminated by uncaught Java exception: java.lang.NullPointerException
    ORA-29532: Java call terminated by uncaught Java exception: java.lang.ArrayIndexOutOfBoundsException: -2048 < 0
    for this issue i increased the heap memory size up to 1024MB. Still i have the same issue. Can any one help to fix the issue?

    ORA-29532: Java call terminated by uncaught Java
    exception: java.lang.NullPointerException
    ORA-29532: Java call terminated by uncaught Java
    exception: java.lang.ArrayIndexOutOfBoundsException:
    -2048 < 0Aren't the null pointer and arrayindexoutofbounds, the ones which you get when you are trying to read beyond your array? (example: when your loop tries to access the 563rd element in your array, since your array index starts from 0)?
    May be if you can try to write out your elements in the array, you might see what it is croaking about.
    Thanks,
    Chiru

  • Fax remmitance issue during teh Payemnt run procedure

    Hi Gurus ,
    There is a scenario : whenever a payment run is executed through F110 , the payments information of vendors or customers are sent to BANK .
    now there is an issue that fax remmitance information has not beeen recievd by the same individual
    How do we check the settings of automatic payment program :in order to check teh fax remmitance details being
    sent to Vendors while payment ?
    Does this kind of sending information deals with a configured workflow in system ?
    Could someone guide me in : Where do we find the configuration settings for Automatic payemnt run procedure?
    Thanks
    KylieTisha

    Hi Gurus ,
    this is a question about Payemnt Run :-
    While conducting the payemnt run a variant is being used , which populates paying company code , company code posting date etc parameters and the printer details also where the payment remittances needs to be sent .
    Payment remittances will include : Fax detailsof vendors etc.
    Fax remittances : vendor fax details as entered in FK03 are supposed to be received at the printer .
    Now could anybody guide me in the information :-
    Fax details as entered in the Vendor Master data will be utilized whileprinting this remittances or do we need toalso mention
    the Standard Communication method : FAX ? Is there a relation between the fields in XK03 Standard Communication method and the Tel Details/Fax Details/Email Detials being entered for the Vendor ?
    now along with vendor fax details do we need to mention the standard communication method as ' FAX ' also in XK03
    so that Payment Run can send only the fax details .
    Any information is appreciable
    Please help.
    Thanks
    Kylietisha
    Edited by: kylietisha on Jul 1, 2010 9:55 PM

  • How run Procedure in SQL Developer?

    I need run procedure in SQL Developer with parameter : 2009
    create or replace PROCEDURE "update_table" (ff_year in varchar2) AS
    CURSOR c_update IS
    select DISTINCT P.mafew name, u.frew nameone, t.greddf, .........
    I click green button RUN and have new window Run PL/SQL. Where in this script I need to print 2009?
    DECLARE
    FF_YEAR VARCHAR2(200);
    BEGIN
    FF_YEAR := NULL;
    update_table(
    FF_YEAR => FF_YEAR
    END;

    Hi,
    user10886774 wrote:
    Thanks all!
    I can run the procedure like 1 or 2 example? Is it right?
    1 like Run Script
    EXEC "UPDATE_TABLE" ('2009');
    2 click RUN on UPDATE_TABLE procedure
    DECLARE
    FF_YEAR VARCHAR2(200);
    BEGIN
    FF_YEAR := '2009';
    UPDATE_TABLE(
    FF_YEAR => FF_YEAR
    END;
    What is the name of the procedure?
    Is it update_tabe (all small letters)? If so, you must reference it as "update_table" (all small letters, inside double-quotes).
    Is it UPDATE_TABLE (all capital letters)? If so, you have the choice of referencing it as "UPDATE_TABLE" (all capital letters, inside double-quotes) or as update_table, or Update_Table, or UPDATE_TABLE, or uPdAtE_taBle, or ... (any kind of letters, without quotes).
    How about commit after?How about it?
    What is the question?
    If you want to commit, say COMMIT or click on the COMMIT icon.

  • Running scripts concurrently from various workstations(OTM)

    We have a server setup for OATS and we are accessing the OTM given by admins. But when when we submit the scripts from workstation the playback is running on server not on workstation.
    what setup is required on workstations to see the script playback on workstation only when run from OTM. I have 5 workstions where I need to run scripts concurrently.
    We are using OATS 12.2 and this is for Oracle EBS functional testing
    Thanks

    Hi,
    You have to add machines in OTM server. During execution, you have to give execution in client machine.
    Cheers,
    Deepu M

  • I want to run loader concurrent program in package..

    i want to run loader concurrent program in package..
    i had registered my package in front-end and also loader,
    i want query that how to call loader CP in package

    Can you check from which schema you are executing FND_REQUEST? You can try as follows;
    Connect to your required schema, create a synonym on apps.fnd_request, connect from apps and finally execute grant all on apps.fnd_request to all.
    You can check for relevance from Doc ID: Note:147495.1
    Please do keep in the mind the soultion above should be applied to a test/dev EBS instance first.
    I hope this would be of help.
    Saad

  • How to run all Concurrent Requests in a single node in a multi node env

    DB;11.1.0.7
    Oracle Apps:12.1.1
    OS:Linux 86x64 Red Hat
    PCP setting is enabled.
    Load Balancer is enabled.
    APPLDCP=ON
    Could anyone please share - How to run all Concurrent Requests in a single node in a multi node env where there are 3 web tier nodes?
    Thanks for your time!
    Regards,

    PCP setting is enabled.
    Load Balancer is enabled.
    APPLDCP=ON
    Could anyone please share - How to run all Concurrent Requests in a single node in a multi node env where there are 3 web tier nodes?Concurrent requests will be processed by the CM nodes and it has nothing to do with the 3 web tier nodes you have.
    If you mean the database instance, then please see these docs.
    How to run a concurrent program against a specific RAC instance with PCP/RAC setup? [ID 1129203.1]
    In A PCP/RAC Configuration, How To Find Out On Which RAC Instance FNDSM Is Currently Running? [ID 1089396.1]
    Thanks,
    Hussein

  • Run procedure - error handling

    Hi,
    I 've created a run procedure to fire off my test cases. In cases of success he puts ' PASS', in case of failure he puts 'FAIL' as status , however when the sql query is invalid he currently stops the procedure and RAISES the error.
    I would like to let the procedure continue till the end and as status insert 'ERRO' for that query rather than that the procedure stops and raises teh error. This, to enable the procedure to be run completely even if a test case is badly written.
    Could someone pls help out?
    thnx
    CREATE OR REPLACE PROCEDURE              RUN_TEST_CASES 
       AS
        cursor c_etrm_test_cases
        is
            select   test_group,
                     test_id,
                     test_type,
                     test_desc,
                     test_level,
                     test_query,
                     test_owner,
                     test_creation,
                     expected_result
              from   etrm_test_cases;
        v_result          number (10);
        v_tstart          timestamp (0);
        v_tend            timestamp (0);
        v_cresult         char (4);
        v_remark          varchar2 (2000);
        v_runid           number (3);
    begin
        --check for active run_id
        select   a.run
          into   v_runid
          from   zainet_dev_mig.ZN_TEC_INFRA_RUN a
         where   a.active = 'Y';
        for r_etrm_test_cases in c_etrm_test_cases
        loop
            --start timestamp
            select   CURRENT_TIMESTAMP (0) into v_tstart from DUAL;
            --execute the query - test case
            begin
                execute immediate TO_CHAR (r_etrm_test_cases.test_query)
                    into   v_result;
            exception
                when others
                then raise;
            end;
            --was the result as expected?
            if v_result = r_etrm_test_cases.expected_result
            then
                v_cresult := 'PASS';
                v_remark := null;
            else
                v_cresult := 'FAIL';
                v_remark :=
                       'Expected '
                    || TO_CHAR (r_etrm_test_cases.expected_result)
                    || ', got '
                    || TO_CHAR (v_result);
            end if;
            --end timestamp
            select   CURRENT_TIMESTAMP (0) into v_tend from DUAL;
            BEGIN
            UPDATE ZAINET_DEV_MIG.etrm_test_log
            SET ZAINET_DEV_MIG.etrm_test_log.result = v_result,
                ZAINET_DEV_MIG.etrm_test_log.time_start = v_tstart,
                ZAINET_DEV_MIG.etrm_test_log.time_end = v_tend,
                ZAINET_DEV_MIG.etrm_test_log.status = v_cresult,
                ZAINET_DEV_MIG.etrm_test_log.run_id = v_runid,
                ZAINET_DEV_MIG.etrm_test_log.action = 'UPDATE'
                WHERE ZAINET_DEV_MIG.etrm_test_log.test_id in (select test_id from ZAINET_DEV_MIG.etrm_test_cases);
           EXCEPTION WHEN others
           THEN
           BEGIN
           insert into ZAINET_DEV_MIG.etrm_test_log (test_group,
                                                  test_id,
                                                  test_type,
                                                  test_desc,
                                                  test_level,
                                                  test_query,
                                                  test_owner,
                                                  test_creation,
                                                  expected_result,
                                                  result,
                                                  status,
                                                  remark,
                                                  time_start,
                                                  time_end,
                                                  run_id,
                                                  action)
              values   (r_etrm_test_cases.test_group,
                        r_etrm_test_cases.test_id,
                        r_etrm_test_cases.test_type,
                        r_etrm_test_cases.test_desc,
                        r_etrm_test_cases.test_level,
                        r_etrm_test_cases.test_query,
                        r_etrm_test_cases.test_owner,
                        r_etrm_test_cases.test_creation,
                        r_etrm_test_cases.expected_result,
                        v_result,
                        v_cresult,
                        v_remark,
                        v_tstart,
                        v_tend,
                        v_runid,
                        'INSERT');
              EXCEPTION when others
              then raise;
              end;         
        end;
            commit;
        end loop;
    end run_test_cases;Edited by: BluShadow on 29-Jul-2011 13:39
    added {noformat}{noformat} tags.  Please read {message:id=9360002} to learn to do this yourself.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   

    It could be that the insert into etrm_test_log is raising another invalid number exception - completely unrelated to the first. You should have a full error stack which will point to the line number that is raising the exception.
    Check the types of the variables against each column you are inserting.
    Also with reference to the Merge that BluShadow mentioned, you've not really done anything about it. The very least you should do if you're not going to follow that advice is to get rid of the WHEN OTHERS and replace it with WHEN DUP_VAL_ON_INDEX. That is more precise than WHEN OTHERS...
    /* Formatted on 01/08/2011 10:21:26 (QP5 v5.163.1008.3004) */
    CREATE OR REPLACE PROCEDURE run_test_cases
    AS
       CURSOR c_etrm_test_cases
       IS
          SELECT test_group,
                 test_id,
                 test_type,
                 test_desc,
                 test_level,
                 test_query,
                 test_owner,
                 test_creation,
                 expected_result
            FROM etrm_test_cases;
       v_result    NUMBER (10);
       v_tstart    TIMESTAMP (0);
       v_tend      TIMESTAMP (0);
       v_cresult   CHAR (4);
       v_remark    VARCHAR2 (2000);
       v_runid     NUMBER (3);
    BEGIN
       --check for active run_id
       SELECT a.run
         INTO v_runid
         FROM zainet_dev_mig.zn_tec_infra_run a
        WHERE a.active = 'Y';
       FOR r_etrm_test_cases IN c_etrm_test_cases
       LOOP
          --start timestamp
          SELECT CURRENT_TIMESTAMP (0) INTO v_tstart FROM DUAL;
          --execute the query - test case
          BEGIN
             EXECUTE IMMEDIATE TO_CHAR (r_etrm_test_cases.test_query)
                INTO v_result;
          EXCEPTION
             WHEN INVALID_NUMBER
             THEN
                INSERT INTO zainet_dev_mig.etrm_test_log (test_group,
                                                          test_id,
                                                          test_type,
                                                          test_desc,
                                                          test_level,
                                                          test_query,
                                                          test_owner,
                                                          test_creation,
                                                          expected_result,
                                                          result,
                                                          status,
                                                          remark,
                                                          time_start,
                                                          time_end,
                                                          run_id,
                                                          action)
                     VALUES (r_etrm_test_cases.test_group,
                             r_etrm_test_cases.test_id,
                             r_etrm_test_cases.test_type,
                             r_etrm_test_cases.test_desc,
                             r_etrm_test_cases.test_level,
                             r_etrm_test_cases.test_query,
                             r_etrm_test_cases.test_owner,
                             r_etrm_test_cases.test_creation,
                             r_etrm_test_cases.expected_result,
                             'ERROR: INVALID NUMBER',
                             'ERROR: INVALID NUMBER',
                             'CHECK QUERY - ERROR: INVALID NUMBER',
                             NULL,
                             NULL,
                             v_runid,
                             'ERROR: INVALID NUMBER');
          END;                                       --was the result as expected?
          IF v_result = r_etrm_test_cases.expected_result
          THEN
             v_cresult := 'PASS';
             v_remark := NULL;
          ELSE
             v_cresult := 'FAIL';
             v_remark :=
                   'Expected '
                || TO_CHAR (r_etrm_test_cases.expected_result)
                || ', got '
                || TO_CHAR (v_result);
          END IF;
          --end timestamp
          SELECT CURRENT_TIMESTAMP (0) INTO v_tend FROM DUAL;
          BEGIN
             INSERT INTO zainet_dev_mig.etrm_test_log (test_group,
                                                       test_id,
                                                       test_type,
                                                       test_desc,
                                                       test_level,
                                                       test_query,
                                                       test_owner,
                                                       test_creation,
                                                       expected_result,
                                                       result,
                                                       status,
                                                       remark,
                                                       time_start,
                                                       time_end,
                                                       run_id,
                                                       action)
                  VALUES (r_etrm_test_cases.test_group,
                          r_etrm_test_cases.test_id,
                          r_etrm_test_cases.test_type,
                          r_etrm_test_cases.test_desc,
                          r_etrm_test_cases.test_level,
                          r_etrm_test_cases.test_query,
                          r_etrm_test_cases.test_owner,
                          r_etrm_test_cases.test_creation,
                          r_etrm_test_cases.expected_result,
                          v_result,
                          v_cresult,
                          v_remark,
                          v_tstart,
                          v_tend,
                          v_runid,
                          'INSERT');
          EXCEPTION
             WHEN DUP_VAL_ON_INDEX
             THEN
                   UPDATE zainet_dev_mig.etrm_test_log
                      SET zainet_dev_mig.etrm_test_log.result = v_result,
                          zainet_dev_mig.etrm_test_log.time_start = v_tstart,
                          zainet_dev_mig.etrm_test_log.time_end = v_tend,
                          zainet_dev_mig.etrm_test_log.status = v_cresult,
                          zainet_dev_mig.etrm_test_log.run_id = v_runid,
                          zainet_dev_mig.etrm_test_log.action = 'UPDATE'
                    WHERE zainet_dev_mig.etrm_test_log.test_id =
                             r_etrm_test_cases.test_id;
          END;
          COMMIT;
       END LOOP;
    END run_test_cases;HTH
    David

Maybe you are looking for

  • Installation in MacOSX 10.8.4

    I have a new Macbook Pro running OSX 10.8.4 I downloaded the latest version of Flash Player Installer, but the installation process stops with the message "Actionlist not found". Is this a problem with my OS or with the version of Flash Player? Pleas

  • Help will not load games on new classic ipod

    I purchase a game that showes up in i tunes but will not load into my new i pod classic. when i pull it up in itunes above the game symbol it says I pod fifth gen. I have a grey ipod so i know it is a classic. it just dosen't load onto the ipod when

  • Mavericks and Dual Display not working as documented

    Hi all. Ok..something a little wierder here for my dual display scenario. I have two Samsung Syncmaster 2443 monitors. 15" MBP Retina purchased this year. Running in Clamshell Mode. I can get dual monitors happening (extended) but I cannot get the me

  • Iphoto on dvd

    I saved photos on a dvd using iphoto. When I try to access the photos from the dvd I get this message, "The disk does not allow more burns. Please insert a different disk." Then the dvd is rejected. How do I view these files?

  • Mavericks update, MacBook Pro, short cut buttons not functioning to

    After recently installing the OSX mavericks 10.9.3 the shortcut buttons at the top of my keyboard are either not working or are not functioning with the correct button. I checked through the system preferences and found nothing to help me. What can I