¿ Si quieres controlar una mayor cantidad de errores, debes declarar
varias veces también el 'PRAGMA EXCEPTION_INIT ' y el error exception ?
declare
error1 exception ;
error2 exception ;
PRAGMA_EXCEPTION_INIT(error1,-302000);
PRAGMA_EXCEPTION_INIT(error2,-1403);
begin
.....
end;
> -----Mensaje original-----
> De: Hector Gabriel Ulloa Ligarius (Antilhue)
> [SMTP:hulloal@...]
> Enviado el: Martes, 07 de Enero de 2003 14:39
> Para: 'DesarrolloOracleForms@yahoogroups.com'
> Asunto: RE: [Forms] PRAGMA EXCEPTION_INIT ??
>
> Xander, te explico un poco para que no se malentienda...
>
> Existen ciertos errores predefinidos en Oracle los cuales
> iinmediatamente
> después de ser generados por el código son tomados en la definición de las
> exception, me explico con ejemplos
>
> Si dentro de un programa o bloque PL/SQL haces un select xxxxxx into
> variable from tabla
>
> Puedes obtener tres resultados : Ningún dato, un dato , más de un dato
>
> Si obtienes ningún dato se activará de forma inmediata nuestro
> predefinición de error NO_DATA_FOUND que está asociado al error Oracle
> 1403.
> Si obtienes muchos datos (más de uno) se activará de forma inmediata
> nuestro predefinición de error TOO_MANY_ROWS .
>
> Así como hay errores predefnidos en Oracle, existen códigos de errores
> que
> no tienen una exception definida, como por ejemplo , el error Oracle
> ORA-302000 , ante lo cual, uno como programador debiese programarlos
> (valga
> la redundancia) y así definir errores Oracle, capturarlos manejarlos, etc,
> etc.
>
> Como se hace esto , mediante el PRAGMA EXCEPTION_INIT
>
> Ejemplo :
>
> declare
> error1 exception;
> PRAGMA EXCEPTION_INIT(error1,-302000);
> begin
> ...
> exception
> WHEN ERROR1 THEN
> <mensajes>
> end;
>
> Entonces si dentro de tu bloque PL/SQL se gatilla este error Oracle,
> inmediatamente lo toma la exception
>
>
> Esto se puede hacer con cualquier número de error Oracle, pero si existen
> duplicidades , retorna error, ejemplo si está definido el NO_DATA_FOUND y
> generamos una exception con el número -1403 , dará redundancia.
>
> SI se quiere personalizar el texto de los mensajes, te recomiendo uses el
> SQLCODE, el SQLERRM y que programes los triggers a nivel de form ON-ERROR
> y
> ON-MESSAGE
>
> Atte
>
> Hector
>
>
>
> -----Mensaje original-----
> De: Xander Cage [mailto:developer_novato@...]
> Enviado el: martes 7 de enero de 2003 12:16
> Para: DesarrolloOracleForms@yahoogroups.com
> Asunto: [Forms] PRAGMA EXCEPTION_INIT ??
>
>
>
> Buenas Foro tengo una pregunta acerca del pragma exception init.
>
> segun lo que lei de la respuesta de Hector se puede hacer que los mensajes
> personalizados generados con pragma exception init y
> RAISE_APPLICATION_ERROR pueden ser mostrados en el entorno Forms.
>
> intente pero no me da resultado solo me muestra el mensaje que yo
> personalize desde el sql-plus pero en el forms no..
>
> aqui va una funcion a la quisiera implementar la utilidad descrita
>
> create or replace FUNCTION F_GET_TIPOCAMBIO(P_FECHA DATE) RETURN NUMBER IS
> V_TC NUMBER;
> BEGIN
> SELECT TC_VENTA INTO V_TC
> FROM TAB_TIPO_CAMB
> WHERE FEC_CAMB=P_FECHA;
>
> return(V_TC);
>
> EXCEPTION
> WHEN NO_DATA_FOUND THEN
> RAISE_APPLICATION_ERROR(-20101, 'Error No existe Tipo Cambio Para La
> Fecha
> ');
> END F_GET_TIPOCAMBIO;
>
> Salud2
>
>
>
>
>
>
>
> _____
>
> Yahoo! Postales
>
> <http://es.rd.yahoo.com/mail_es/tagline/greetings/*http://es.greetings.yah
> oo
> .com/> ¡Felicita las fiestas!
>
> Publicidad
>
>
> ------------------------------
> DesarrolloOracleForms:
> Desarrollo de Software en Oracle Forms Developer
> ------------------------------
> Direcciones de la lista:
> Publicar un mensaje: DesarrolloOracleForms@...
> Suscribirse........: DesarrolloOracleForms-Subscribe@...
> Desuscribirse......: DesarrolloOracleForms-Unsubscribe@...
> Administrador......: DesarrolloOracleForms-Owner@...
> Página de la lista.:
> http://www.gruposyahoo.com.ar/group/DesarrolloOracleForms
> <http://www.gruposyahoo.com.ar/group/DesarrolloOracleForms>
> ------------------------------
> http://www.navegana.com/dinero/chanzes.html
> <http://www.navegana.com/dinero/chanzes.html>
>
> La utilización de Yahoo! Grupos está sujeta a su aceptación de las
> Condiciones del servicio <http://es.docs.yahoo.com/info/utos.html> así
> como
> de la Política de <http://privacy.yahoo.com/es/> privacidad.
>
>
>
> ------------------------------
> DesarrolloOracleForms:
> Desarrollo de Software en Oracle Forms Developer
> ------------------------------
> Direcciones de la lista:
> Publicar un mensaje: DesarrolloOracleForms@...
> Suscribirse........: DesarrolloOracleForms-Subscribe@...
> Desuscribirse......: DesarrolloOracleForms-Unsubscribe@...
> Administrador......: DesarrolloOracleForms-Owner@...
> Página de la lista.:
> http://www.gruposyahoo.com.ar/group/DesarrolloOracleForms
> ------------------------------
> http://www.navegana.com/dinero/chanzes.html
>
> La utilización de Yahoo! Grupos está sujeta a su aceptación de las
> Condiciones del servicio (http://es.docs.yahoo.com/info/utos.html) así
> como de la Política de privacidad (http://privacy.yahoo.com/es/).
>
>