 |
|
 |
Excepciones personalizadas en PL/SQL
RAISE_APPLICATION_ERROR
En ocasiones queremos enviar un mensaje de error personalizado al producirse una excepción PL/SQL. Para ello es necesario utilizar la instruccion RAISE_APPLICATION_ERROR;
La sintaxis general es la siguiente:
RAISE_APPLICATION_ERROR(<error_num>,<mensaje>);
|
Siendo:
- error_num es un entero negativo comprendido entre -20001 y -20999
- mensaje la descripcion del error
DECLARE v_div NUMBER; BEGIN SELECT 1/0 INTO v_div FROM DUAL; EXCEPTION WHEN OTHERS THEN RAISE_APPLICATION_ERROR(-20001,'No se puede dividir por cero'); END;
|
|
| |
 |
gracias
por
jose
Respuesta recibida el [21/06/2007 12:15:16]
|
 |
muy bueno excelente manual me a servido mucho esta esxplicado muy claramente y es excelente.
|
| |
 |
Error con el raise application
por
Verónica Sandoval
Respuesta recibida el [19/07/2007 08:20:27]
|
 |
Hola, tengo el error ORA-06550: line 7, column 1: PLS-00306: wrong number or types of arguments in call to 'RAISE_APPLICATION_ERROR' el script que tengo es el siguiente: declare mi_excepcion exception; begin :estado := x_wflrsm.fValidateRes2Change(:nuevo_estado); exception when no_data_found then raise_application_error( 'mi excepcion No está permitido cambiar el estado del equipo'); end;
por qué me está mandando ese error? Ayuda por favor
|
| |
 |
Error con el raise application
por
Pablo
Respuesta recibida el [01/08/2007 12:10:58]
|
 |
Veronica, fijate que te esta faltando el numero de error. Los parametros del raise_application_error son 2 y vos le estas pasando solo 1.
|
| |
 |
Error con el RAISE_APPLICATION
por
FRANCISCO VILLAVICENCIO
Respuesta recibida el [13/08/2007 11:53:34]
|
 |
Hola Pedro, corrí el ejemplo del RAISE_APPLICATION_ERROR tal como está y la máquina me da estos mensajes:
SQL> DECLARE 2 v_div NUMBER; 3 BEGIN 4 SELECT 1/0 INTO v_div FROM DUAL; 5 EXCEPTION 6 WHEN OTHERS THEN 7 RAISE_APPLICATION_ERROR(-21000,'No se puede dividir por cero'); 8 END; 9 . SQL> / DECLARE * ERROR en línea 1: ORA-21000: el argumento de número de error para raise_application_error de -21000 está fuera de rango ORA-06512: en línea 7
|
| |
 |
Corregido....
por
Devjoker
Respuesta recibida el [13/08/2007 12:58:11]
|
 |
Corregido.
|
| |
 |
ayudaa
por
francis
Respuesta recibida el [23/10/2007 07:06:10]
|
 |
set serveroutput on; declare sin_precio EXCEPTION; sin_codigo EXCEPTION; p_precio number(8,2); begin select p_price into p_precio from product where p_code ='1111111';
IF p_precio=0 then RAISE sin_precio; elsIF p_precio <> 0 then dbms_output.put_line (p_precio); END IF;
EXCEPTION WHEN sin_precio then dbms_output.put_line ('El Codigo ingresado no exixte');
end; /
|
| |
 |
pork no pasa ala exepcion???
por
francis
Respuesta recibida el [23/10/2007 07:08:47]
|
 |
SQL> set serveroutput on; SQL> declare 2 sin_precio EXCEPTION; 3 sin_codigo EXCEPTION; 4 p_precio number(8,2); 5 6 7 begin 8 select p_price into p_precio from product 9 where p_code ='1111111'; 10 11 12 IF p_precio=0 then 13 RAISE sin_precio; 14 elsIF p_precio <> 0 then 15 dbms_output.put_line (p_precio); 16 END IF; 17 18 EXCEPTION 19 WHEN sin_precio then 20 dbms_output.put_line ('El Codigo ingresado no exixte'); 21 22 end; 23 / declare * ERROR en línea 1: ORA-01403: No se ha encontrado ningún dato ORA-06512: en línea 8
|
| |
 |
Para preguntar utiliza los for...
por
ddevjoker
Respuesta recibida el [24/10/2007 04:18:39]
|
 |
Para preguntar utiliza los foros. Lo que te pasa es una excepcion NO_DATA_FOUND
|
| |
 |
pl/sql
por
julio
Respuesta recibida el [05/11/2007 09:42:20]
|
 |
como ejecutar un bloque anonimo?
|
| |
 |
Pagina
por
Lucia
Respuesta recibida el [24/11/2007 02:21:35]
|
 |
Tu página no es buena. ES MUY BUENA. Es completísima!! Me ha sido de muchísima ayuda un montón de veces.
|
| |
 |
RAISE_APPLICATION (INCREIBLE!!!)
por
ALBERTO
Respuesta recibida el [13/02/2008 06:04:00]
|
 |
ORA-21000: el argumento de número de error para raise_application_error de 0 está fuera de rango.
Me está dando este error, pero lo más fuerte es que si está en el rango.
raise_application_error(-20000, 'error');
he probado también con el -20500 y pasa lo mismo. Daigual el número que le ponga, aunque esté dentro del rango me dice que está fuera.
Un Saludo!!
|
| |
 |
RAISE_APPLICATION_ERROR
por
ovidio
Respuesta recibida el [19/03/2008 02:02:01]
|
 |
el ttuto esta buenisimo solo me quedo la incognita de cuando uso RAISE_APPLICATION_ERROR y cuando uzo el RAISE nombre_error
|
| |
 |
La una y la Otra
por
Homar
Respuesta recibida el [15/05/2008 03:28:38]
|
 |
Ovidio lo que entiendo (porque hasta ahora estoy aprendiendo) de cuando utilizo la una y la otra; RAISE es para lanzar una excepcion y se utiliza en el bloque de ejecucion. Y RAISE_APPLICATION_ERROR se utiliza en el bloque de Excepciones para mostrar un mensaje personalizado.
|
| |
 |
problema
por
ruben
Respuesta recibida el [30/10/2008 06:35:47]
|
 |
hola amigas el problema que tengo es que me da el error: PLS-00201: el identificador 'RAISE_APPLICATION.ERROR' se debe declarar
y el script es el siguiente:
Create or replace procedure InsertarClientes(cod varchar2,nom varchar2,domi varchar2) as cod_null exception; nom_null exception; begin if cod is null then raise cod_null; end if; if nom is null then raise nom_null; end if; insert into clientes values(cod,nom,domi); exception when cod_null then raise_application.error(-20001,' El Cliente no puede ser nulo'); when nom_null then raise_application.error(-20001,'El Nombre del cliente no puede ser nulo'); when dup_val_on_index then raise_application.error(-20001,'El cliente ya existe'); WHEN OTHERS THEN raise_application.error(-20002,sqlcode ||' '||sqlerrm); end;
|
| |
 |
me podeis ayudar por favor...
por
ruben
Respuesta recibida el [30/10/2008 06:36:40]
|
 |
me podeis ayudar por favor
|
| |
 |
ERROR TIPOGRAFICO
por
ARREGLADOR
Respuesta recibida el [06/11/2008 01:55:21]
|
 |
PEDRO, corrige el fina de tu pagina
DICE:"Pedro Herrarte, es consultor independiente, ofreciendo sercivios.."
DEBE DECIR:"Pedro Herrarte, es consultor independiente, ofreciendo servicios..."
|
| |
 |
Pregunta
por
Amy C
Respuesta recibida el [27/11/2008 02:10:13]
|
 |
Quisiera saber xq me da este error: ORA-21000: el argumento de número de error para raise_application_error de-21000 está fuera de rango y como lo soluciono
|
| |
 |
PARA RUBEN
por
ESLAPERA
Respuesta recibida el [20/01/2009 05:53:17]
|
 |
Es un error sintáctico. Estas escribiendo RAISE_APPLICATION.ERROR, cuando ese punto es una barra baja. RAISE_APPLICATION_ERROR
|
| |
 |
AYUDAME
por
YAMY
Respuesta recibida el [10/02/2009 02:38:31]
|
 |
HOLA COM ESTAS MIRA SOY UNA JOVEN ESTUDIANTE A LA CUAL LE GUSTA PROGRAMAR TODAVIA ESTOY ESTUDIANDO LA LIC. EN ING. EN SISTEMA, GRACIAS A DIOS ESTOY TRABAJANDO ADQUIRIENDO EXPERENCIA EN UNA EMPRESA QUE VENDE UN SISTEMA CONTABLE FINANCIERO EN EL CUAL ME DEDICO A PROGRAMAR EN PL SQL, PERO DESGRACIADAMENTE SON PERSONAS QUE NO APRECIAN A SUS EMPLEADOS Y TE DOY GRACIAS POR TENER ESTA PAGINA QUE TANTAS VECES ME A AYUDADO A SACAR ADELANTE LOS REQUERIMIENTOS QUE SE ME ASIGNAN. MUCHAS GRACIAS. SI TIENES ALGUN TUTORIAL DE PL SQL O VB.NET TE AGRADECERIA QUE ME LO ENVIES A ESTA DIRECCION YAMILEX27MC507@GMAIL.COM GRACIAS POR TODO PEDRO.
|
| |
 |
Atrapar errores ORA-
por
Sergio Ayala
Respuesta recibida el [18/02/2009 06:51:13]
|
 |
Buenos días... como se puede atrapar un error ORA-14000 (error al querer insertar un NULL en una tabla)? Cual seria la pregunta por hacer. El comando "sqlerrm" visualiza el error pero sale por EXCEPTION WHEN OTHERS. Es que es la única opción que coloque. Gracias
|
| |
 |
Consegui el Código para atrapar ERRORES
por
Sergio Ayala
Respuesta recibida el [18/02/2009 07:02:14]
|
 |
Hola nuevamente..
Encontré una solución, quizás hallan otras, pero esta me funciona bien.
DECLARE
NullValues EXCEPTION;
PRAGMA EXCEPTION_INIT(NullValues, -01400);
BEGIN
-- código resultante es ORA-1400
EXCEPTION WHEN NullValues THEN NULL; -- atrapa el error y sale
END;
Espero que Puedas arregar un ejemplo así Pedro.. para los que programamos en FORMS Developer es muy útil esta clase de "atrapar error".
Saludos y Éxitos en tus proyectos
|
| |
 |
PL/SQL
por
Mario
Respuesta recibida el [29/09/2009 09:08:44]
|
 |
Buenas a todos, me estoy iniciando en PL y quería saber como puedo habilitarlo en SQL Plus. Si es necesario instalar algo más o es suficiente con habilitar algún punto. Muchas gracias, saludos.
|
| Añadir comentario ... |
Para preguntar utiliza los foros
|
|

|
Excepciones personalizadas en PL/SQL |
|
Autor:
Pedro Herrarte Sánchez
|
|
Visitas:
53414 |
Fecha de publicación:
17/10/2006 |
Pedro Herrarte, es consultor independiente, ofreciendo servicios de consultoría, análisis, desarrollo y formación.
Posee mas de diez años de experiencia trabajando para las principales empresas de España.
Es especialista en tecnologías .NET, entornos Web, bases de datos (SQL Server y ORACLE) e integración de sistemas.
Es experto en desarrollo (C#, ASP.NET, VB.Net, T-SQL, PL/SQL, , ASP, CGI , C, Pro*C, Java, Essbase, Vignette, PowerBuilder y Visual Basic ...) y bases de datos (SQL Server y ORACLE).
Es fundador, diseñador y programador de www.devjoker.com. |
|
|
Visitas:
115
|
Comentarios:
3
|
Archivo:
Articulos
|
Visitas:
815
|
Comentarios:
2
|
Archivo:
Articulos
|
Visitas:
777
|
Comentarios:
3
|
Archivo:
Articulos
|
Visitas:
675
|
Comentarios:
2
|
Archivo:
Articulos
|
Visitas:
3194
|
Comentarios:
2
|
Archivo:
Articulos
|
Visitas:
14581
|
Comentarios:
7
|
Archivo:
Articulos
|
Visitas:
1504
|
Comentarios:
3
|
Archivo:
Articulos
|
|
Visitas:
700
|
Comentarios:
2
|
Archivo:
Articulos
|
|
Visitas:
370
|
Comentarios:
0
|
Archivo:
Articulos
|
Visitas:
2038
|
Comentarios:
2
|
Archivo:
Articulos
|
|
|
 |
|
 |