Los datos expuestos en este blog, son solo de índole informativo. Por favor realiza siempre una copia de seguridad antes de realizar cualquier cambio en tu proyecto.
Oracle/PLSQL: mensaje de error ORA-06510
Aprenda por qué y cómo resolver los mensajes de error ORA-06510 en Oracle.
describir
Cuando encuentra un error ORA-06510, aparece el siguiente mensaje de error:
- ORA-06510: excepción definida por el usuario no controlada
razón
Intenta ejecutar un bloque de código que lanza una excepción definida por el usuario, pero no hay ningún código de bloque de excepción para manejar esta excepción.
resolver
Las opciones para resolver este error de Oracle incluyen:
Opción 1
Elimine las excepciones definidas por el usuario de su código.
Opcion 2
Agregue código de excepción para manejar las excepciones definidas por el usuario.
Por ejemplo, si intenta el siguiente procedimiento:
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;
Recibirá el siguiente mensaje de error:
El motivo de este error es que generó una excepción denominada no_sales, pero no incluyó el código para manejar la excepción no_sales en el bloque EXCEPTION.
Puede corregir este problema modificando el proceso de la siguiente manera:
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;