InicioArticulos y noticiasBases de datosProgramaciónForosInternetServiciosContratacionEmail
Tutorial PL/SQL
Introducción a PLSQL
Programación con PL/SQL
Fundamentos de PL/SQL
Tipos de datos en PL/SQL
Operadores en PL/SQL
Estructuras de control en PL/SQL
Bloques PL/SQL
Cursores en PL/SQL
Cursores Implicitos en PL/SQL
Cursores Explicitos en PL/SQL
Cursores de actualización en PL/SQL
Excepciones en PL/SQL
Excepciones personalizadas en PL/SQL
Propagacion de excepciones en PL/SQL
Subprogramas en PL/SQL
Procedimientos almacenados en PL/SQL
Funciones en PL/SQL
Triggers en PL/SQL
Subprogramas en bloques anónimos
Paquetes en PL/SQL
Registros PL/SQL
Tablas PL/SQL
Tipo VARRAY
BULK COLLECT
Transacciones con PL/SQL
Transacciones autónomas
SQL Dinamico
Funciones integradas de PL/SQL
Secuencias
PL/SQL y Java
También puedes ver ...
Como conectar a ORACLE con Java
Recuperar datos BLOB de ORACLE
Trabajar con datos de tipo BLOB en ORACLE
Secuencias
PL/SQL y Java
SQL Dinamico
Transacciones autónomas
Funciones integradas de PL/SQL
Transacciones con PL/SQL
Tipo VARRAY

Afiliados
La Web del programador
MundoProgramacion


 

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;

 


Inicio | Tutorial PL/SQL Excepciones en PL/SQLTutorial PL/SQLPropagacion de excepciones en PL/SQL Versión para imprimir Foros de consulta

 
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.


Añadir comentario ... Para preguntar utiliza los foros
Autor:

Título:


Para preguntar utiliza los foros.



Inicio | Tutorial PL/SQL Excepciones en PL/SQLTutorial PL/SQLPropagacion de excepciones en PL/SQL Versión para imprimir

Excepciones personalizadas en PL/SQL
Autor: Pedro Herrarte Sánchez
Visitas: 26229 Fecha de publicación: 17/10/2006
Pedro Herrarte, es consultor independiente, ofreciendo sercivios 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.




18/08/2008 SQL Server 2008
Visitas: 39 | Comentarios: 0 | Archivo: Articulos
Categorias: Transact-SQL
Visitas: 131 | Comentarios: 0 | Archivo: Articulos
Categorias: C#|ADO.NET|LinQ
Visitas: 161 | Comentarios: 1 | Archivo: Articulos
Categorias: Humor
Visitas: 154 | Comentarios: 0 | Archivo: Articulos
Categorias: WCF
Visitas: 123 | Comentarios: 0 | Archivo: Articulos
Categorias: WCF
Visitas: 210 | Comentarios: 0 | Archivo: Articulos
Categorias: ASP.NET
Visitas: 278 | Comentarios: 5 | Archivo: Articulos
Categorias: ASP.NET
Visitas: 4990 | Comentarios: 4 | Archivo: Articulos
Categorias: C#|Transact-SQL|LinQ
Visitas: 602 | Comentarios: 1 | Archivo: Articulos
Categorias: Visual Studio
Visitas: 1402 | Comentarios: 1 | Archivo: Articulos
Categorias: Transact-SQL

Útimos temas recibidos en los foros ...
Y lo mismo en WEB por systemat ... [C#] 1 18/08/2008
Manual del minicom de Linux con fotos. por Meta ... [UNIX] 4 17/08/2008
PROGRAMACION por JUANMA ... [Visual Basic .NET] 1 19/08/2008
Conectar ASP con B.D Informix por Franco ... [ASP] 9 02/05/2007
Codigo salir por Jazmin ... [ASP.NET] 1 18/08/2008
EXPORTAR DATOS A ARCHIVOS PLANOS. por WIX ... [ORACLE] 10 06/08/2007
formulario por artdark ... [C#] 2 04/08/2008
Codigo salir por Jazmin ... [ASP.NET] 0 18/08/2008
cambiar de modo un gried view por ivan ... [ASP.NET] 0 18/08/2008
ayuda urgente porfavor por vicancer ... [ASP.NET] 0 18/08/2008
pollo por hajaj ... [Actualidad] 1 15/08/2008
DIOS TE BENDIGA por El You ... [WIN 98/NT/2000/XP] 1 16/08/2008

Access CGI JSP ORACLE UNIX
Actualidad HTML/DHTML/XHTML LINUX PHP Visual Basic .NET
ASP ISAPI MS DOS Power Builder Visual Basic 6.0
ASP.NET Java mySQL SQL WIN 98/NT/2000/XP
C# JavaScript Opinion SQL Server

devjoker  Te recomendamos además ...
31/03/2006 Tipos de datos en PL/SQL    forma parte de...Tutorial PL/SQL
22/10/2005 Introducción SQL    forma parte de...Tutorial SQL
22/10/2005 Actualización de datos. UPDATE    forma parte de...Tutorial SQL
22/10/2005 Componentes del lenguaje SQL    forma parte de...Tutorial SQL
28/06/2006 Triggers en PL/SQL    forma parte de...Tutorial PL/SQL
07/11/2006 Enumeraciones    forma parte de...Tutorial C#
28/06/2006 Excepciones en PL/SQL    forma parte de...Tutorial PL/SQL
22/10/2005 Insertar datos. INSERT    forma parte de...Tutorial SQL
22/04/2008 TripleDES - Un ejemplo practico en C#
16/11/2005 Delegados en C#

 

Encuesta
Si trabajas con .NET ¿Que entorno utilizas?
[Ver] [Votar]