ORA-06510 Error Message
Learn the cause and how to resolve the ORA-06510 error message in Oracle.
Description
When you encounter an ORA-06510 error, the following error message will appear:
- ORA-06510: unhandled user-defined exception
Cause
You tried to execute a block of code that raised a user-defined exception, but there was no exception block code to handle this exception.
Resolution
The option(s) to resolve this Oracle error are:
Option #1
Remove the user-defined exception from the code.
Option #2
Add exception code to handle the user-defined exception.
For example, if you had tried to execute the following procedure:
CREATE OR REPLACE PROCEDURE add_new_order (order_id_in IN NUMBER, sales_in IN NUMBER) IS no_sales EXCEPTION; BEGIN IF sales_in = 0 THEN RAISE no_sales; ELSE INSERT INTO orders (order_id, total_sales ) VALUES ( order_id_in, sales_in ); END IF; END;
You would receive the following error message:
This error is caused because you raised an exception called no_sales, but you did not include code in the EXCEPTION block to handle the no_sales exception.
You could correct this by modifying the procedure as follows:
CREATE OR REPLACE PROCEDURE add_new_order (order_id_in IN NUMBER, sales_in IN NUMBER) IS no_sales EXCEPTION; BEGIN IF sales_in = 0 THEN RAISE no_sales; ELSE INSERT INTO orders ( order_id, total_sales ) VALUES ( order_id_in, sales_in ); END IF; EXCEPTION WHEN no_sales THEN raise_application_error (-20001,'You must have sales in order to submit the order.'); END;
No comments:
Post a Comment