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
PL/SQL y Java
Secuencias
Transacciones autónomas
SQL Dinamico
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.

 
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
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: 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
Categorias: ASP.NET
Visitas: 34 | Comentarios: 0 | Archivo: Articulos
Categorias: TFS
Visitas: 285 | Comentarios: 1 | Archivo: Articulos
Categorias: Visual Basic .NET|C#
Visitas: 844 | Comentarios: 2 | Archivo: Articulos
Categorias: C#|ASP.NET|HTML DHTML|XML|JavaScript|ASP.NET|ASP|PHP|Visual Studio
Visitas: 712 | Comentarios: 1 | Archivo: Articulos
Categorias: Administración|Tutorial SQL
Visitas: 452 | Comentarios: 0 | Archivo: Articulos
Categorias: ASP.NET
Visitas: 1055 | Comentarios: 1 | Archivo: Articulos
Categorias: ASP.NET|CSS|ASP.NET
Visitas: 251 | Comentarios: 0 | Archivo: Articulos
Categorias: TFS

Útimos temas recibidos en los foros ...
autogenerado de sugero social de salud por noemi ... [Visual Basic .NET] 15 29/06/2008
FORMULARIO ACCESS por jcifuentes ... [Access] 11 29/05/2007
Ysmael por Ysmael ... [SQL] 0 08/01/2009
Reflection por Maurito22 ... [C#] 2 06/01/2009
Programador por Robert ... [ORACLE] 0 07/01/2009
como insertar registros en un formulario de visual basic.net desde la base de datos sql server por orlan ... [SQL Server] 8 09/06/2008
quierocodigo de autogenerado del seguro por edwin garcia ramirez ... [Visual Basic .NET] 0 07/01/2009
Video gratis sobre AJAX con ASP.NET por alexxe ... [ASP.NET] 1 06/01/2009
calcular saldo acumulativo por cben ... [SQL] 5 30/12/2008
comparar 2 campos de 2 tablas usando el like por nani ... [SQL Server] 1 06/01/2009
Apagar ordenador remoto en C# por victoryiyo ... [C#] 1 07/01/2009
numero de AUTOGENERADO IPSS por carlos ... [Visual Basic .NET] 5 30/10/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 ...
10/06/2007 Multiples escritorios en Windows XP
12/01/2006 Programación con PL/SQL    forma parte de...Tutorial PL/SQL
14/07/2006 Tablas PL/SQL    forma parte de...Tutorial PL/SQL
28/06/2006 Procedimientos almacenados en PL/SQL    forma parte de...Tutorial PL/SQL
14/07/2006 Registros PL/SQL    forma parte de...Tutorial PL/SQL
13/07/2006 Paquetes en PL/SQL    forma parte de...Tutorial PL/SQL
06/11/2007 Cursores en Transact SQL    forma parte de...Tutorial de Transact SQL
21/07/2006 Funciones integradas de PL/SQL    forma parte de...Tutorial PL/SQL
03/10/2006 Herencia y métodos virtuales    forma parte de...Tutorial C#
19/10/2005 Una clase sencilla para encriptar cadenas

 

Encuesta
¿A que perfil te adaptas mejor?
[Ver] [Votar]