 |
|
 |
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
|
| Añadir comentario ... |
Para preguntar utiliza los foros
|
|

|
Excepciones personalizadas en PL/SQL |
|
Autor:
Pedro Herrarte Sánchez
|
|
Visitas:
32364 |
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:
47
|
Comentarios:
0
|
Archivo:
Articulos
|
|
Visitas:
109
|
Comentarios:
0
|
Archivo:
Articulos
|
Visitas:
158
|
Comentarios:
0
|
Archivo:
Articulos
|
Visitas:
34
|
Comentarios:
0
|
Archivo:
Articulos
|
Visitas:
285
|
Comentarios:
1
|
Archivo:
Articulos
|
Visitas:
844
|
Comentarios:
2
|
Archivo:
Articulos
|
Visitas:
712
|
Comentarios:
1
|
Archivo:
Articulos
|
Visitas:
452
|
Comentarios:
0
|
Archivo:
Articulos
|
Visitas:
1055
|
Comentarios:
1
|
Archivo:
Articulos
|
Visitas:
251
|
Comentarios:
0
|
Archivo:
Articulos
|
|
|
|
 |
| Encuesta |
|
¿A que perfil te adaptas mejor? |
|
|
|
|
|
|
|
|
 |