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


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

 
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
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: 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
02/02/2010 iPad vs Telesketch
Visitas: 815 | Comentarios: 2 | Archivo: Articulos
Categorias: Humor
Visitas: 777 | Comentarios: 3 | Archivo: Articulos
Visitas: 3194 | Comentarios: 2 | Archivo: Articulos
Categorias: C#
Visitas: 14581 | Comentarios: 7 | Archivo: Articulos
Categorias: C#|Seguridad
Visitas: 1504 | Comentarios: 3 | Archivo: Articulos
Visitas: 700 | Comentarios: 2 | Archivo: Articulos
Visitas: 370 | Comentarios: 0 | Archivo: Articulos
Visitas: 2038 | Comentarios: 2 | Archivo: Articulos
Categorias: C#

Útimos temas recibidos en los foros ...
AYUDA URGENTE PARA CONSULTA ENTRE DOS TABLAS por pepe ... [SQL] 0 15/03/2010
CERTIFICACION CESANTIAS por linda ... [Actualidad] 0 15/03/2010
certificado pensiones horizonte por angela patricia rodriguez ... [Actualidad] 143 26/01/2010
Solicitud certificado de afiliaciones a pensiones y cesantias proteccion por hz ... [Actualidad] 62 10/02/2010
certificado de pensiones del bbva horizonte por danger ... [Actualidad] 127 12/01/2010
certificacion cesantias porvenir por martha perez ... [Actualidad] 6 04/03/2010
cerificado fondo horizonte de pensiones y cesantias por carlos fideligno torres herrera ... [Actualidad] 148 18/01/2010
certificado de afiliacion por EDDY ... [Actualidad] 0 14/03/2010
Cursores por nopodes ... [ORACLE] 0 14/03/2010
peticion urgente mi nombre es juan pablo osorio cardona cc 71115218 por juancho ... [Actualidad] 0 14/03/2010
peticion por juancho ... [Actualidad] 0 14/03/2010
estrato de pencion por carlos antonio mateus gomez ... [Actualidad] 0 14/03/2010

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 ...
05/12/2008 Instalar SQL server enterprise en Vista o XP
24/07/2006 SQL Dinamico    forma parte de...Tutorial PL/SQL
22/03/2008 Problemas al conectar a redes wifi con Windows Vista
06/05/2007 Introducción a Transact SQL    forma parte de...Tutorial de Transact SQL
22/10/2005 Consultar datos. SELECT    forma parte de...Tutorial SQL
31/03/2006 Tipos de datos en PL/SQL    forma parte de...Tutorial PL/SQL
04/07/2007 Mostrar el codigo oculto con visual studio 2005 y .NET 2.0
31/03/2006 Fundamentos de PL/SQL    forma parte de...Tutorial PL/SQL
12/01/2006 Programación con PL/SQL    forma parte de...Tutorial PL/SQL
22/10/2005 Vistas    forma parte de...Tutorial SQL

 

Encuesta
¿A que perfil te adaptas mejor?




[Ver] [Votar]