Skip to main content

Identify the line number where an exception was thrown

To identify the line number where an exception was thrown in PL/SQL, you can use the DBMS_UTILITY.FORMAT_ERROR_BACKTRACE function. This function provides a backtrace that includes the line number(s) in the PL/SQL block, procedure, or function where the error occurred, making it easier to pinpoint the location of the problem.

EXCEPTION WHEN OTHERS THEN 

DBMS_OUTPUT.PUT_LINE('Error Message: ' || SQLERRM); 

END;

Output:

ORA-06502: PL/SQL: numeric or value error: character string buffer too small

The above Example will throw the Error "ORA-06502: PL/SQL: numeric or value error: character string buffer too small" but we cannot find which line causing the issue without debugging the entire program. Here We can use DBMS_UTILITY.FORMAT_ERROR_BACKTRACE to identify the line number of the code which causing the issue.

EXCEPTION WHEN OTHERS THEN 

DBMS_OUTPUT.PUT_LINE('Error Backtrace: 'DBMS_UTILITY.FORMAT_ERROR_BACKTRACE); 

END;

 Output:

Error Message: ORA-06502: PL/SQL: numeric or value error: character string buffer too small
Error Backtrace: ORA-06512: at line 6

 


Comments

Popular posts from this blog

API to Create & Update Price Adjustment and Order Lines

Important Tables: select header_id from oe_order_headers_all; select line_id from oe_order_lines_all; select list_header_id from qp_list_headers_all; select list_line_id from qp_list_lines; CREATE OR REPLACE PROCEDURE apps.xxapply_discount (p_header_id number) IS    v_api_version_number           number := 1;    v_return_status                varchar2 (2000);    v_msg_count                    number;    v_msg_data                     varchar2 (2000);    -- in variables --    v_header_rec                   oe_order_pub.header_rec_type;    v_line_tbl                     oe_order_pub.line_tbl_type;    v_action_request_tbl   ...

Uninvoiced Receipts Query Oracle r12

Uninvoiced Receipts: SELECT   pha.segment1 po_number,          TO_CHAR (pha.creation_date, 'DD-MON-RRRR') po_date,          (SELECT   vendor_name             FROM   ap_suppliers ap            WHERE   ap.vendor_id = pha.vendor_id)             supplier_name,          pla.quantity,          pla.unit_price,          pla.quantity * pla.unit_price AS line_amount,          (SELECT   concatenated_segments             FROM   gl_code_combinations_kfv gcc            WHERE   gcc.code_combination_id = pda.code_combination_id)             charge_account,          rsh...