Error : ORA-06510: PL/SQL: unhandled user-defined exception

Hi,
Please help on this Error.
Here is my code for Trigger
Code for Trigger
CREATE OR REPLACE TRIGGER TRG_EXCEP AFTER INSERT ON TEST FOR EACH ROW
DECLARE
     vInt NUMBER := 0;
     vErr EXCEPTION;
BEGIN
     vInt := :OLD.TEST_ID;
     IF vInt > 10 THEN
          INSERT INTO TEST1 VALUES (:NEW.TEST_ID,:NEW.TEST_NAME);
     ELSE
          RAISE vErr;
     END IF;
EXCEPTION
          WHEN vErr THEN
               INSERT INTO TEST1 VALUES (0,:NEW.TEST_NAME);
END;
While inserting in to the table TEST iam getting the following error
Error on line 0
INSERT INTO TEST VALUES (147541,'Mm',SYSDATE)
ORA-00001: unique constraint (DB_TEST.SYS_C005327) violated
ORA-06512: at "DB_TEST.TRG_EXCEP", line 13
ORA-06510: PL/SQL: unhandled user-defined exception
Someone help me please ...............
Thanks,
Murali.V

Hi,
I made the mistake here
INSERT INTO TEST1(id,name) VALUES (0,:NEW.TEST_NAME);
where i defined the id as primary key.
But the another problem for me now is while compiling the trigger after i modified,
i get this error
11:37:05 Error: TRIGGER DB_TEST.TRG_EXCEP
On line: 7
PLS-00553: character set name is not recognized
Please help.
Thanks,
Murali.V

Similar Messages

  • Validation returns : no data found + unhandled user-defined exception

    Hi, I'm working with Application Express 4.1.1.00.23.
    I have an application for timesheet management.
    On one page, I've got a report (not interactive) in which you can enter the hours you've worked. First you add a free line, choose the task and then enter the hours you've spent.
    You can only have one empty line at a time. If you try to add a line when you already have an empty line, a validation will display an error. It worked fine in version 3.2. Now we upgraded to 4.1 and get a weird error :
    1) The validation msg appears fine
    2) The report appears fine
    3) There is a msg at the end of the report saying :
    report error:
    ORA-01403: no data found
    ORA-06510: PL/SQL: unhandled user-defined exception
    Could somebody point out the source of this problem ?
    Thank you!
    Here is the debug :
    0.31117     0.00204     parse query as: FEUILLES_DE_TEMPS     4     
    0.31319     0.07865     ...Execute Statement: select NULL "CHECK$01", NULL "nom_projet2", NULL "NO_TACHE_ENTRE", NULL "NO_TACHE", NULL "NO_SEMAINE_EMPLOYE", NULL "NOM_TACHE", NULL "Tâches", NULL "SEQUENCE", NULL "Heures dim", NULL "DIM", NULL "Heures lun", NULL "LUN", NULL "Heures mar", NULL "MAR", NULL "Heures mer", NULL "MER", NULL "Heures jeu", NULL "JEU", NULL "Heures ven", NULL "VEN", NULL "Heures sam", .........
    0.39191     0.00158     print column headings     4
    0.39342     0.02546     rows loop: 500 row(s)     4
    0.41889     0.00087     report error: ORA-01403: no data found ORA-06510: PL/SQL: unhandled user-defined exception
    .....

    Hi, thanks for your answer. Here is the validation we are executing. I'm pretty sure its fine since count(*) always return a value (plus we see V2 in the debug...) :
    declare
    l_count number;
    begin
    apex_debug_message.enable_debug_messages(7);
    apex_debug_message.log_message('-----------------------------------V1----------------------------------');
    -- get remaining empty tasks count
    SELECT count(*) into l_count
    FROM VIEW_TACHE_SYSTEME
    WHERE NO_TACHE NOT IN (SELECT DISTINCT NO_TACHE FROM TACHE_JOUR WHERE NO_SEMAINE_EMPLOYE = :P36_NO_SEMAINE_EMPLOYE);
    apex_debug_message.log_message('-----------------------------------V2----------------------------------');
    apex_debug_message.log_message(l_count);
    if l_count = 0 then
    return 'Veuillez utiliser la tâche vide avant d''ajouter une ligne.';
    else
    return null;
    end if;
    end;
    Here is the debug :
    0.14643     0.00318     ...Validation "ADD_ROW_VALIDATION" - Type: FUNC_BODY_RETURNING_ERR_TEXT     4     
    0.14961     0.00318     ...Execute Statement: declare function x return varchar2 is begin declare l_count number; begin apex_debug_message.enable_debug_messages(7); apex_debug_message.log_message('-----------------------------------V1----------------------------------'); -- get remaining empty tasks count SELECT count(*) into l_count FROM VIEW_TACHE_SYSTEME WHERE NO_TACHE NOT IN (SELECT DISTINCT NO_TACHE FROM TACHE_JOUR WHERE NO_SEMAINE_EMPLOYE = :P36_NO_SEMAINE_EMPLOYE); apex_debug_message.log_message('-----------------------------------V2----------------------------------'); apex_debug_message.log_message(l_count); if l_count = 0 then return 'Veuillez utiliser la tâche vide avant d''ajouter une ligne.'; else return null; end if; end; return null; end; begin wwv_flow.g_computation_result_vc := x; end;     4     
    0.15280     0.01299     -----------------------------------V1----------------------------------     6     
    0.16578     0.00310     -----------------------------------V2----------------------------------     6     
    0.16888     0.00235     0     6     
    0.17123     0.00225     ......Result = Veuillez utiliser la tâche vide avant d'ajouter une ligne.     4     
    0.17347     0.00276     ......Did NOT pass     4     
    0.17624     0.00314     Add error onto error stack     4     
    0.17938     0.00343     ...Error data:     4     
    0.18280     0.00327     ......message: Veuillez utiliser la tâche vide avant d'ajouter une ligne.     4     
    0.18607     0.00446     ......display_location: INLINE_IN_NOTIFICATION     4     
    0.19053     0.00323     ......is_internal_error: false     4     
    0.19375     0.00323     ......error_backtrace: - PL/SQL Call Stack - object line object handle number name c000000382130f30 717 package body APEX_040100.WWV_FLOW_ERROR c000000382130f30 833 package body APEX_040100.WWV_FLOW_ERROR c00000039da9b5c8 154 package body APEX_040100.WWV_FLOW_VALIDATION c00000039da9b5c8 363 package body APEX_040100.WWV_FLOW_VALIDATION c00000039da9b5c8 784 package body APEX_040100.WWV_FLOW_VALIDATION c00000039da9b5c8 905 package body APEX_040100.WWV_FLOW_VALIDATION c00000039d1142c8 10005 package body APEX_040100.WWV_FLOW c000000381287050 31 anonymous block

  • Unhandled user-defined exception in dbms_session?

    hi guys,
    I've had some code that's been working for a while but just now has started giving me the following:
    SQL> select *
      2    from v$version;
    BANNER
    Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bi
    PL/SQL Release 10.2.0.5.0 - Production
    CORE    10.2.0.5.0      Production
    TNS for Linux: Version 10.2.0.5.0 - Production
    NLSRTL Version 10.2.0.5.0 - Production
    5 rows selected.
    Elapsed: 00:00:00.00
    SQL> begin
      2 
      3 
      4          dbms_session.set_nls('cursor_sharing','FORCE');
      5         
      6         
      7  end;                                                     
      8  /
    begin
    ERROR at line 1:
    ORA-06510: PL/SQL: unhandled user-defined exception
    ORA-06512: at "SYS.DBMS_SESSION", line 158
    ORA-06512: at line 4I've closed my sessions and restarted, it doesn't matter whether this is running via a stored proc or as an anonymous block like the above - what should I be looking for to find the cause of this?
    I don't think I've been changing anything except using the dbms_session.set_identifier procedure, but certainly not in the sessions that I've been setting this nls parameter...

    sybrand_b wrote:
    You can not use set_nls to change this parameter, you need 'execute immediate 'alter system... etc'
    And it is a bad hack to work around not using bind variables.
    Sybrand Bakker
    Senior Oracle DBAalso a work around for when your system's parameter is set to 'SIMILAR' but you're trying to use certain XML functionality:
    SQL> alter session set cursor_sharing = SIMILAR;
    Session altered.
    Elapsed: 00:00:00.00
    SQL> with t as (select xmltype('<validation>
      2                                <error id="1">
      3                                  <sys_message>test</sys_message>
      4                                  <cust_message>testing</cust_message>
      5                                  <cust_code>blahblah</cust_code>
      6                                </error>
      7                              </validation>') pi_xml from dual)                  
      8            SELECT xtab.sys_message
      9                  ,xtab.cust_message
    10                  ,xtab.cust_code
    11              FROM xmltable('/validation/error'
    12                    passing (SELECT pi_xml
    13                               FROM T)
    14                    COLUMNS
    15                      ID            NUMBER   path '/error/@id'
    16                      ,sys_message  VARCHAR2(1000) path '/error/sys_message'
    17                      ,cust_message VARCHAR2(1000) path '/error/cust_message'
    18                      ,cust_code    VARCHAR2(1000) path '/error/cust_code') xtab;
                                </validation>') pi_xml from dual)
    ERROR at line 7:
    ORA-01780: string literal required
    Elapsed: 00:00:00.00
    SQL> alter session set cursor_sharing = 'FORCE';
    Session altered.
    SQL> with t as (select xmltype('<validation>
      2                                <error id="1">
      3                                  <sys_message>test</sys_message>
      4                                  <cust_message>testing</cust_message>
      5                                  <cust_code>blahblah</cust_code>
      6                                </error>
      7                              </validation>') pi_xml from dual)                   
      8            SELECT xtab.sys_message
      9                  ,xtab.cust_message
    10                  ,xtab.cust_code
    11              FROM xmltable('/validation/error'
    12                    passing (SELECT pi_xml
    13                               FROM T)
    14                    COLUMNS
    15                      ID            NUMBER   path '/error/@id'
    16                      ,sys_message  VARCHAR2(1000) path '/error/sys_message'
    17                      ,cust_message VARCHAR2(1000) path '/error/cust_message'
    18                      ,cust_code    VARCHAR2(1000) path '/error/cust_code') xtab; 
    SYS_MESSAGE
    CUST_MESSAGE
    CUST_CODE
    test
    testing
    blahblah
    1 row selected.edit:
    incidentally, the exact same result can be retrieved with with cursor_sharing = similar if you do it this way...:
    SQL> alter session set cursor_sharing = SIMILAR;
    Session altered.
    Elapsed: 00:00:00.00
    SQL> with t as (select xmltype('<validation>
      2                                <error id="1">
      3                                  <sys_message>test</sys_message>
      4                                  <cust_message>testing</cust_message>
      5                                  <cust_code>blahblah</cust_code>
      6                                </error>
      7                              </validation>') pi_xml from dual)                     
      8        SELECT extractvalue(pi_xml,'/validation/error[@id=1]/sys_message')  sys_message
      9              ,extractvalue(pi_xml,'/validation/error[@id=1]/cust_message') cust_message
    10              ,extractvalue(pi_xml,'/validation/error[@id=1]/cust_code')    cust_code
    11          FROM (SELECT pi_xml
    12                  from t); 
    SYS_MESSAGE
    CUST_MESSAGE
    CUST_CODE
    test
    testing
    blahblah
    1 row selected.Edited by: WhiteHat on May 11, 2011 5:11 PM

  • Ora-06510 ora-06512  unhandled user-defined exceptions

    hi,
    i try to execute command
    exec wwv_context.sync but i get following errors
    16:35:45 Error executing statement: ORA-06550: row 2, column 1:
    16:35:45 PLS-00201:identifier 'WWV_CONTEXT.SYNC' must be declared
    16:35:45 ORA-06550: row 2, column 1
    please help.

    What's the status for this object?
    select status from dba_objects where object_name ='<your_object>';

  • Help in user defined exception handler

    Hi
    Can some one help in solving this error .
    when i run my procedure i get this error which is given below .
    ORA-06510 PL/SQL unhandeled user defined exception at line 7
    Procedure FMG_EXTRACT_MOTORBIKE_NEWBUS (P_NSSC_YN VARCHAR2) IS
    l_start date;
    l_end date;
    cursor motorbike_rec is
    select
    c.id,
    k.id pak_id,
    p.ref,
    i.description,
    i.current_status,
    i.premium,
    i.sum_insured,
    mv.registration_no,
    mv.cc_rating,
    nl.ncl_level,
    nl.percentage_discount,
    dp.full_name main_driver,
    dpd.birth_date,
    e.user_name entered_by,
    ep.full_name emp_name,
    fmg_get_imposed_terms(i.id,'. ',';') imposed_terms
    from
    fmg_clients c,
    fmg_client_paks k,
    fmg_policies p,
    fmg_Policy_items i,
    fmg_mv_usages u,
    fmg_people dp,
    fmg_people_details dpd,
    fmg_employees e,
    fmg_people ep,
    fmg_motor_vehicles mv,
    fmg_ncb_levels nl
    where i.date_created>=l_start
    and i.date_created<l_end
    and i.pol_id=p.id
    and p.ctp_id=k.id
    and k.cli_id=c.id
    and i.id=u.poi_id(+)
    and u.per_id=dp.id(+)
    and dp.id=dpd.per_id(+)
    and i.id=mv.poi_id(+)
    and i.ncl_id=nl.id(+)
    and ( (i.pit_pro_code in ('TFF','FMC','FMT','FMF','FBK','PMC','TPO','MCL'))
    or (i.pit_pro_code = 'CMV' and i.pit_code = 'MCL')
    or (i.pit_pro_code = 'PMS' and i.pit_code = 'MCL')
    or (i.pit_pro_code = 'PMT' and i.pit_code in ('MCT','MCF'))
    and i.user_created=e.user_name
    and ( (e.business_unit='BCC' and P_NSSC_YN='Y') OR (nvl(e.business_unit,'X')<>'BCC' and P_NSSC_YN='N') )
    and e.per_id=ep.id;
    l_file UTL_FILE.FILE_TYPE;
    l_file_name varchar2(100);
    l_data VARCHAR2(4000);
    BEGIN
    if P_NSSC_YN='Y' then
    l_start := trunc(sysdate)-1;
    l_end := trunc(sysdate);
    l_file_name := 'MotorCycle_Daily_'||to_char(l_start)||'.csv';
    l_file := utl_file.fopen( fmg_re_filepath('SSC'), l_file_name, 'W' );
    else
    l_start := to_date('01-' || to_char(sysdate-28,'MM-YYYY'));
    l_end := last_day(to_date('01-' || to_char(sysdate-28,'MM-YYYY')));
    l_file_name := 'MotorCycle_Monthly_'||to_char(l_start)||'_'||to_char(l_end)||'.csv';
    l_file := utl_file.fopen( fmg_re_filepath('GAU'), l_file_name, 'W' );
    end if;
    l_data := '"Client ID","Pak ID","Policy Ref","Item Desc","RegoNo","CC","Item Status","Premium","Sum Insured",' ||
    '"NCB Level","NCB%","Main Driver","Birth Date","Imposed terms","EnteredBy","Employee Name"';
    utl_file.put_line(l_file, l_data );
    for i in motorbike_rec loop
    l_data :=
    to_char(i.id) || ',' ||
    to_char(i.pak_id) || ',' ||
    i.ref || ',' ||
    '"' || i.description || '",' ||
    '"' || i.registration_no || '",' ||
    to_char(i.cc_Rating) || ',' ||
    i.current_status || ',' ||
    to_char(i.premium) || ',' ||
    to_char(i.sum_insured) || ',' ||
    to_char(i.ncl_level) || ',' ||
    to_char(i.percentage_discount) || ',' ||
    '"' || i.main_driver || '",' ||
    to_char(i.birth_date) || ',' ||
    '"' || i.imposed_terms || '",' ||
    i.entered_by || ',' ||
    '"' || i.emp_name || '"' ;
    utl_file.put_line(l_file,l_data);
    end loop;
    utl_file.fclose( l_file );
    exception
    when others then
    if utl_file.is_open(l_file) then
    utl_file.fclose( l_file );
    end if;
    raise;
    END;

    What does fmg_re_filepath('SSC') return? Are their sufficient rights with Oracle user on the location that is returned by this function?
    Which OS are you using?

  • Trapping user defined exceptions in forms

    hi guys..
    i have a database trigger that goes like that:
    CREATE OR REPLACE TRIGGER loan_trig
    before insert on loans
    for each row
    declare
    lcount number(10);
    duplicate_loan exception;
    begin
    select count(1) into lcount from loans
    where branch_code=:new.branch_code
    and client_code=:new.client_code;
    if lcount>0 then
    raise duplicate_loan;
    end if;
    end;
    now how do i trap this user defined exception on the form ?
    declaring the exception in the form & handling it in the exeption handler section doesn't seem to work and i get the following error:
    "when button pressed trigger raised unhandled exception
    ora-06510"
    ora-06510:unhandled user-defined exception
    what am i doing wrong?
    if i have to handle the exception in the trigger body how do i do that?
    thankx in advance..

    Hello,
    raise duplicate_loan; won't avoid the trigger to insert and commit. If you really want to avoid the insertion, use the raise_applicatrion_error() instead.
    For instance : Raise_Application_Error( -20001, 'Insertion cannot be validated' );Then in your Forms module, you can catch it like this:
       Begin
       Insert Into ...
       when others then
          LC$Erreur := Substr( SQLERRM,1 , 500 );
          LN$err_code := ABS(SQLCODE);
          If LN$err_code = 20001 Then ...
       End;
    ...Francois

  • Report error: ORA-06502: PL/SQL: numeric or value error: character string b

    I have a form which uses a customer form/report, drop downs etc..
    the debug shows it running this statement
    ...Execute Statement: begin begin SELECT distinct initcap(RTRIM (LTRIM (e.surname, ' *0123456789-/:.?,'), ' *0123456789-/:.?,') || ', ' || RTRIM (LTRIM (e.first_name, ' *0123456789-/:.?,'), ' *0123456789-/:.?,' )) empname, e.ID bulk collect into wwv_flow_utilities.g_display,wwv_flow_utilities.g_value FROM dms.dms_employees@dmsprd e, dms.dms_employee_contracts@dmsprd ec WHERE e.ID = ec.emp_id and e.surname like '%%' AND :p75_date BETWEEN ec.start_date AND NVL (ec.end_date, :p75_date) AND e.brh_id = 3654 ORDER BY 1; end; end;
    Then says
    "report error: ORA-06502: PL/SQL: numeric or value error: character string buffer too small"
    Any Ideas?
    Thanks
    Dean

    Denes Kubicek wrote:
    A select list is limited in size. I am not sure what the limit is but that is definitelly the case.The maximum size for the HTML generated for a select list is 32K.
    86 options sounds on the low side to be hitting that limit, but there are other concerns to this as well. Scrolling through hundreds/thousands of options in a select list is a pain for users, and huge select lists produce bloated pages that impact load times and network bandwidth. That list of around 200 countries you find on many sites is about the sensible maximum length for a select list.
    You should use popups.Indeed.

  • Error : ORA-06508: PL/SQL: could not find program unit being called

    Hi
    I got surprise issue while testing my Oracle code . Let me explain first the environment detail . Our appliaction built on
    Java/J2EE(Weblogic) and backend is Oracle 11g re2 . While calling from java it call thru different user which have been provide
    synonym and exectue option for corresponding procdure ,
    I created on package EXTRACT_CUSTOMER_INFO_PK which will exract data to text file using UTL_FILE ( direcory , UTL_FILE grant is provided to DB user).
    Now this package has been called from rp_execute_procedure_pr -- Here I is the code
    CREATE OR REPLACE PROCEDURE RP_EXECUTE_PROCEDURE_PR
    i_atlas_job_schedule_fk IN atlas_job_schedule.atlas_job_schedule_pk%TYPE,
    i_job_id IN atlas_job.job_id%TYPE,
    i_parm_value IN atlas_job_schedule.parm_value%TYPE,
    o_status_code OUT NUMBER,
    o_status_mesg OUT VARCHAR2
    IS
    -------Other old code which is not relevent for this issue ----
    --------Other old code which is not relevent for this issue ----
    ----Below code I added ----
    ELSIF l_job_id = 'CUST_EXTRACT' THEN
    EXTRACT_CUSTOMER_INFO_PK.customer_report ( i_parm_value ,
                   o_status_code,
    o_status_mesg ) ;
    -- o_status_code := -99999999;
    --o_status_mesg := 'PARTHA PARTHA PARTHAcess terminated!';
    ELSE
    o_status_code := -20300;
    o_status_mesg := 'Job Id : ' || l_job_id || ' NOT found. Process terminated!';
    END IF;
    update_log_auto
    ajs_rec.atlas_job_schedule_pk ,
    'Processing End Time (GMT): '
    EXCEPTION
    WHEN eProcError THEN
    o_status_code := SQLCODE;
    o_status_mesg := SUBSTR(vMsg ||'-'||SQLERRM, 1, 200);
    WHEN OTHERS THEN
    o_status_code := -20300;
    o_status_mesg := SUBSTR(SQLERRM, 1, 200);
    update_log_auto
    ajs_rec.atlas_job_schedule_pk ,
    'Error : '||SQLERRM||' '
    update_log_auto
    ajs_rec.atlas_job_schedule_pk,
    'Processing End Time (GMT): '
    END RP_EXECUTE_PROCEDURE_PR;
    Now It compiled sucesfully . And while I did SIT then RP_EXECUTE_PROCEDURE_PR run fine and extracted txt file . But while I called it from Java procedure It gives us error like
    Error : ORA-06508: PL/SQL: could not find program unit being called 02-AUG-2012 13:16:51.
    As I told RP_EXECUTE_PROCEDURE_PR old proc and used by other proc , So I first suspect issue is newly added code or may be some grant or synonym ( Although it should not be )
    so I created public synony amd gave execute grant to my pkg to public .
    But it repeat same error .
    I did lot of R&D on my pkg but nothing happen . Finally I remane my new pkg RP_EXTRACT_CUSTOMER_INFO_PK and it works fine
    I need to know what is the RCA for it . I donot think any dependecy issue as renaming pkg is working fine .
    NB my DB user is iATLAS and Javauser is SUDEEP
    Thanks in Advance
    Debashis Mallick

    First of all If i run the main procedure in like below in my Schema it is working fine
    begin
    -- Call the procedure
    rp_execute_procedure_pr(i_atlas_job_schedule_fk => :i_atlas_job_schedule_fk,
    i_job_id => :i_job_id,
    i_parm_value => :i_parm_value,
    o_status_code => :o_status_code,
    o_status_mesg => :o_status_mesg);
    end;
    So thre is no question of parameter .... or Invalid state etc . If it is parameter or Invalid state issue it will give other error.
    Here problem is not syntax issue .
    let me give u more detail regards this issue
    1.. All objects corresponding to procedure all Valid
    2.. If I test on the proc on my schema like above code . It works fine
    3.rp_execute_procedure_pr is a old procudere which called for differner report generartion based on parameter passing . Also as extract_customer_info_pk called with in rp_execute_procedure_pr So there is no question of synonym or privilage issue for new procedure.
    4. Suprising thing is if I rename and recreate package like extract_customer_info_pk _1 or rp_extract_customer_info_pk . Which are exactly same as extract_customer_info_pk and replace those new one with extract_customer_info_pk then it work fine in my java application
    I think I make it clear the issue
    Edited by: debashisora on Aug 3, 2012 5:31 AM
    Edited by: debashisora on Aug 3, 2012 5:40 AM

  • Error: ORA-06502: PL/SQL: numeric or value error:NULL index table key value

    Hi,
    I am trying toceate an interface which collects data from database make some transformation and populated seeded tables in the same database.
    My Approach is :
    a) Create a record type variable ( concists of multiple segments)
    b) Create a pl/sql table type of the records type in a)
    c) Created a cursor of same structure as pl/sql table type ( collects data)
    d) BULK CoLLECT data from cursor into pl/sql table
    e) Print the data
    But during Bulk Collect i get the below error :
    Unexpected error in xxc_hr2hr_populate_elements.main at FLOW TRACE-1.120. Error: ORA-06502: PL/SQL: numeric or value error: NULL index table key value
    ORA-20003: Unexpected error in xxc_hr2hr_populate_elements.get_data at FLOW TRACE-1.1.100. Error: ORA-06502: PL/SQL: numeric or value error: Bulk Bind: Truncated Bind

    Ashish_Apps wrote:
    Hi,
    I am trying toceate an interface which collects data from database make some transformation and populated seeded tables in the same database.
    My Approach is :
    a) Create a record type variable ( concists of multiple segments)
    b) Create a pl/sql table type of the records type in a)
    c) Created a cursor of same structure as pl/sql table type ( collects data)
    d) BULK CoLLECT data from cursor into pl/sql table
    e) Print the data
    But during Bulk Collect i get the below error :
    Unexpected error in xxc_hr2hr_populate_elements.main at FLOW TRACE-1.120. Error: ORA-06502: PL/SQL: numeric or value error: NULL index table key value
    ORA-20003: Unexpected error in xxc_hr2hr_populate_elements.get_data at FLOW TRACE-1.1.100. Error: ORA-06502: PL/SQL: numeric or value error: Bulk Bind: Truncated BindVerify the rows you are fetching are having the same data types as your Record like Dates should go to date , decimal should not be fetched in type defined as number etc.

  • PL/SQL Using SQL%NOTFOUND to raise a user defined exception in a function

    I have written the following function for finding the number of items in stock in the item table.
    CREATE OR REPLACE function getAmount (ItemID IN NUMBER)
    RETURN NUMBER
    AS
    invalid_id EXCEPTION;
    returnedQty number;
    BEGIN
    Select qty
    Into returnedQty
    From item
    Where itemNo = ItemID;
    RETURN (returnedQty);
    IF SQL%NOTFOUND THEN
    RAISE invalid_id;
    END IF;
    COMMIT;
    Exception
    WHEN invalid_id THEN
    DBMS_OUTPUT.PUT_LINE('Invalid ID entered');
    END getAmount;
    The function compiles successfully, although there is a problem that Oracle is not handling my user-defined exception invalid_id
    If I use the following for a valid itemID:
    DECLARE
    return_value number;
    BEGIN
    return_value := getAmount(1);
    DBMS_OUTPUT.PUT_LINE (return_value);
    END;
    then the function returns the quantity of items in stock correctly.
    However, if I enter an incorrect itemID, say 20
    DECLARE
    return_value number;
    BEGIN
    return_value := getAmount(20);
    DBMS_OUTPUT.PUT_LINE (return_value);
    END;
    The invalid_id exception is not raised, and the Oracle errors says: no_data_found and the function has not returned a value. If I add a no_data_found exception, this works perfectly, but for this assignment I must write my own user-defined error.
    Any help would be very much appreciated!
    Thank you.

    What you're trying to do, is to use an implicit cursor. Implicit cursors will raise no_data_found and too_many_rows in case of an error. Explicit cursors will not.
    Also, you have a small coding error ... a little rewrite and your code will do as you want to:
    CREATE OR REPLACE function getAmount (ItemID IN NUMBER)
    RETURN NUMBER
    AS
    invalid_id EXCEPTION;
    returnedQty number;
    cursor citem is
    Select qty
    From item
    Where itemNo = ItemID;
    fnd boolean;
    BEGIN
    open citem;
    fetch citem Into returnedQty;
    fnd := citem%found;
    close citem;
    if fnd then
    RETURN (returnedQty);
    else
    RAISE invalid_id;
    END IF;
    /* Do not catch your own exception or the calling code will not receive it.
    Exception
    WHEN invalid_id THEN
    DBMS_OUTPUT.PUT_LINE('Invalid ID entered');
    END getAmount;
    Your problem is, you're not using a package. This means, that the calling code has no way of catching this user-defined exeption. The correct way is to define a package, define the userdefined exception in the package and refer to it in your code:
    create or replace package amt
    is
    invalid_id EXCEPTION;
    function getAmount (ItemID IN NUMBER)
    RETURN NUMBER;
    end;
    create or replace package body amt
    is
    function getAmount (ItemID IN NUMBER)
    RETURN NUMBER
    AS
    returnedQty number;
    cursor citem is
    Select qty
    From item
    Where itemNo = ItemID;
    fnd boolean;
    BEGIN
    open citem;
    fetch citem Into returnedQty;
    fnd := citem%found;
    close citem;
    if fnd then
    RETURN (returnedQty);
    else
    RAISE invalid_id;
    END IF;
    end;
    end; -- end package
    To do a simple test, you'll do:
    declare
    a number;
    begin
    a := amt.getAmount(123);
    dbms_output.put_line('The result is '||a);
    exception
    when amt.invalid_id then
    dbms_output.put_line('ID not found');
    end;
    Other ways is to raise the exception in your no_data_found block.
    But I'm REALLY puzzled if there's really someone out there who prefers a user-defined exception instead of the clearly defined NO_DATA_FOUND exception.
    I can't be sure of course, but are you sure what they mean is they don't want ANY exception? That's a pretty common requirement.
    In general - explicit cursors are a bit faster because Oracle does not have to do a second fetch to determine TOO_MANY_ROWS. And it's not too much additional writing. Explicit cursors will never raise exceptions - unless you use dynamic sql and your SQL is invalid.
    Good luck

  • In which of the following sections of a PL/SQL block is a user-defined exception raised?

    Hi,
    A (somewhat elementary) question:
    In which of the following sections of a PL/SQL block is a user-defined exception raised?
    a) Exception section
    b) Declarative section
    c) Error handling section
    d) Executable section
    I'd be interested to hear people's answers.
    Thanks.

    As Etbin already noted, there are only 3 sections and user-defined exception can be raised in any of them. User-defined exception raised in declarative section example:
    declare
        year_zero exception;
        pragma exception_init(year_zero,-01841);
    begin
        declare
            v_dt date := to_date(1721420,'j');
        begin
            null;
        end;
      exception
        when year_zero
          then
            dbms_output.put_line('Year 0!');
    end;
    Year 0!
    PL/SQL procedure successfully completed.
    SQL>
    User-defined exception raised in executable section example:
    declare
        year_zero exception;
        pragma exception_init(year_zero,-01841);
        v_dt date;
    begin
        v_dt := to_date(1721420,'j');
      exception
        when year_zero
          then
            dbms_output.put_line('Year 0!');
    end;
    Year 0!
    PL/SQL procedure successfully completed.
    SQL>
    User-defined exception raised in exception handling section example:
    declare
        year_zero exception;
        pragma exception_init(year_zero,-01841);
        v_dt date;
    begin
        declare
            v_num number;
        begin
            v_num := 1 / 0;
          exception
            when others
              then
                v_dt := to_date(1721420,'j');
        end;
      exception
        when year_zero
          then
            dbms_output.put_line('Year 0!');
    end;
    Year 0!
    PL/SQL procedure successfully completed.
    SQL>
    SY.

  • 'User defined exception error in package OE_SCHEDULE_UTIL' in Sales Order

    Dear Contributors,
    I am getting the following error while trying to enter line items in the Sales order form. Please provide your valuable suggestion on how to fix this...
    User defined exception error in package OE_SCHEDULE_UTIL Procedure Insert_Into_Mtl_Sales_Orders

    1004661 wrote:
    Dear Contributors,
    I am getting the following error while trying to enter line items in the Sales order form. Please provide your valuable suggestion on how to fix this...
    User defined exception error in package OE_SCHEDULE_UTIL Procedure Insert_Into_Mtl_Sales_Orders
    Please see (ORA-01006 bind variable does not exist FND_FLEX_SERVER during OM Activity [ID 1067359.1]).
    Thanks,
    Hussein

  • Report error:ORA-06502: PL/SQL: numeric or value error: character to number

    The oracle application express environment is created by installing the HTTP Server on the windows server and the application express 3.2.1 components on the 11.1.0.7 oracle database on UNIX. The installation is successfully and have not seen any issues during the installation. After completing all the steps, when tried to login and click the application builder or workspace components, I see the error message
    report error:ORA-06502: PL/SQL: numeric or value error: character to number.
    This error message is seen on most of the pages when trying to accessed and not able to understand the reasons behind it. Its a brand new environment setup and not even presented to developers to test it.
    Below error message is always seen when trying to access most of the components like application builder, schema comparison and some other tabs. Please advice
    report error:
    ORA-06502: PL/SQL: numeric or value error: character to number conversion error
    Edited by: user589320 on Jun 9, 2011 5:17 PM

    I think its better you use APEX 4.x version ratherthan using old version.
    You will get more features and some bug fixes and also it's easy for you to get some help when you need.
    * If this answer is helpfull or correct then please mark it and grant the points.

  • Report error:ORA-06502: PL/SQL: numeric or value error: character string bu

    We face the above error in HTMLDB (APEX) application Ver 3.1.0. This occurs when we try to display more number of rows/records in drop-down list (LOV in tabular forms). We are able to display 200 records in LOV. When the list of records exceeds 230, we face the below error
    report error:ORA-06502: PL/SQL: numeric or value error: character string buffer too small
    the values listed in LOV are from tables (one of the columns in table)
    Could anyone give us a solution?

    Hi
    As you are using a tabular form, you could actually do the following:
    1 - In the tabular form column's attributes, set the following:
    Display as: Select List (query based on LOV)
    Display extra values: Yes
    List of values definition: SELECT null d, null r FROM DUAL
    2 - Add a new page item and set it to generate your select list
    3 - Create an HTML region with no template and use the following for its source:
    &lt;script type="text/javascript"&gt;
    function loadList(c, l)
    var s = document.getElementsByName(c);
    var lItem = document.getElementById(l);
    var lLength = lItem.options.length;
    var k;
    var j;
    var x = lItem.innerHTML;
    var v;
    var o;
    var z;
    for (k = 0; k &lt; s.length; k++)
    z = s[k];
    v = z.value;
    z.options.length = 0;
    for (j = 0; j &lt; lLength; j++)
    o = new Option()
    o.value = lItem[j].value;
    o.text = lItem[j].text;
    z.options[j] = o;
    z.value = v;
    if (z.selectedIndex == -1)
    z.selectedIndex = 0;
    loadList("f05", "P1_MGR");
    &lt;/script&gt;
    (Change "f05" and "P1_MGR" as appropriate to your column and your new page item respectively)
    Now, when you load the page, the select list contains a null entry plus the entry already on the database. The javascript kicks in automatically, loops through every entry in the "f05" column, copies the existing value, replaces the select list with the new page item version and sets its value to the copied value.
    Your new page item could be in a DIV tag that has a style of "display:none" to hide it from view.
    Andy

  • Report error: ORA-06502: PL/SQL: numeric or value error: NULL index table k

    Hi everybody,
    I have two Distinct Databases on two distinct servers. (Oracle Ent. Release 10.2.0.3.0 on AIX 5.3). After I install the latest patch last week, One of the APEX installation has some problems on Home>Application Builder Page. The error message is very random and
    report error:
    ORA-06502: PL/SQL: numeric or value error: NULL index table key value.
    When i change the view (details to icons), everything goes to normal. This error message is reflected some of the pages (report region) of some of my applications randomly. When it appears in a report region, i deselect the order method of the region, the result is normal.
    But the other APEX application on the other instance has no problem. It is a bug? or Should i re-install the APEX instance?
    Thank you for your interest?
    Gökhan ÇATALKAYA

    No, but we have a reproducible test case now so we're working on it. See ORA-06502: PL/SQL: numeric or value error: NULL index table key value
    Scott

Maybe you are looking for

  • Inet4AddressImpl.lookupAllHostAddr(String) hangs/blocks

    I'm experiencing a hang when attempting to establish a socket connection. Debugging indicates the VM is blocked here: Inet4AddressImpl.lookupAllHostAddr(String) line: not available [native method] I'm experiencing this problem during an ANT build. In

  • Ken Burns? Other use of stills?

    Can't see from any of the screen shots or on Apple iMovie sites any mention of Ken Burns effect. Is it still there? Does iMovie '08 still fully support all the ways to use stills in iMovie making?

  • Sync photos from iTunes 0 photos yet my iPhone has 2546 photos

    I have an iphone 5 all software is up to date.  My problem is that when I use iTunes to sync my phone I have zero (0) photos selected from iphoto to be synced yet I have over 2500 photos on my phone.  1. My question is do I have to manually delete th

  • TWAIN driver for Photoshop CS6

    Hello, I'm looking for the TWAIN driver for Photoshop CS6 This link Adobe - Photoshop : For Windows : Photoshop CS5 Optional Plugins doesn't contains the TWAIN driver. So, where can I get the TWAIN driver? Thank for your help! Hans-Joerg

  • Opened an Apple binary property list file with Texteditor

    Hello, i made the mistake opening an Apple binary property list file with Texteditor made a change and save it, now the file is corrupted. I should have used bbedit or textwrangler in stead but thats to late now. Is there a way to convert the file ba