Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

RAISE_APPLICATION_ERROR como resolverlo

Estas en el tema de RAISE_APPLICATION_ERROR como resolverlo en el foro de Bases de Datos General en Foros del Web. Hola buenas, perdonad, ando haciendo unas cosultillas, y me esta dando error, esto, y no se porque, a ver si me podeis decir cómo lo ...
  #1 (permalink)  
Antiguo 08/03/2014, 15:46
 
Fecha de Ingreso: julio-2010
Mensajes: 16
Antigüedad: 13 años, 9 meses
Puntos: 0
Pregunta RAISE_APPLICATION_ERROR como resolverlo

Hola buenas, perdonad,
ando haciendo unas cosultillas, y me esta dando error, esto, y no se porque, a ver si me podeis decir cómo lo hago. saludos de antemano


Código SQL:
Ver original
  1. CREATE OR REPLACE PROCEDURE MUESTRADATOSMECANICOS3
  2.   (v_puesto IN mecanicos.puesto%TYPE)
  3.      IS
  4.     v_datos mecanicos%rowtype;
  5.     cursor c_datos IS
  6.       SELECT * FROM mecanicos WHERE puesto = v_puesto;
  7.   BEGIN
  8.     IF NOT c_datos%isopen THEN
  9.       OPEN c_datos;
  10.       IF c_datos%NOTFOUND THEN
  11.         RAISE_APLICATION_ERROR(-20000,'No existe mecánicos con el puesto');
  12.       END IF;
  13.     END IF;
  14.     FETCH c_datos INTO v_datos;
  15.     WHILE c_datos%FOUND
  16.     LOOP
  17.         dbms_output.put_line('dni: ' || v_datos.dni);
  18.         dbms_output.put_line('nombre: ' || v_datos.nombre);
  19.         dbms_output.put_line('salario: ' || v_datos.salario);
  20.         FETCH c_datos INTO v_datos;
  21.     END LOOP;
  22.     CLOSE c_datos;
  23.   END MUESTRADATOSMECANICOS3;

en el raise me da error

Última edición por gnzsoloyo; 08/03/2014 a las 16:01
  #2 (permalink)  
Antiguo 08/03/2014, 16:02
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: RAISE_APPLICATION_ERROR como resolverlo

Cita:
Iniciado por Mefistofeles1982 Ver Mensaje

en el raise me da error
Ajá... ¿Y qué error te da? ¿Qué mensaje muestra? ¿En qué momento, al ejecutar o al compilar?



Supongo que no pretenderás que adivinemos...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 09/03/2014, 00:39
 
Fecha de Ingreso: julio-2010
Mensajes: 16
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: RAISE_APPLICATION_ERROR como resolverlo

El error me da al ejecutar el procedimiento, me dice que se compila con warings, voy al compilador para ver el error que da, y es este:

El identificar RAISE_APPLICATION_ERROR debe declararse.


Yo pensaba que ese tipo de excepciones, se lanzan y ya está, en mis apuntes del profesor dice eso


Gracias de antemano.
  #4 (permalink)  
Antiguo 10/03/2014, 08:15
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: RAISE_APPLICATION_ERROR como resolverlo

si investigaras un poco llegarias a esto:

http://elbauldelprogramador.com/plsql-excepciones/

ahi te dice donde esta tu error, tan dificil es buscar en google??? o es mas facil venir a un foro a lloriquear una respuesta??
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #5 (permalink)  
Antiguo 10/03/2014, 08:52
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: RAISE_APPLICATION_ERROR como resolverlo

Por si las dudas no has entendido bien el link que te pasa @Libras: No se usa dentro del body del SP, sino dentro de las exceptions, para el caos personalidado de una declarada...
O sea: Donde está, el sistema no lo reconoce.
toma los ejemplos del link y úsalos adaptados a tu caso.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #6 (permalink)  
Antiguo 10/03/2014, 09:46
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: RAISE_APPLICATION_ERROR como resolverlo

O aun se puede hacer como te dijo tu maestro sin declararla, pero si te fijas en los ejemplos, en tu caso no estas indicando que se lanzo una excepcion, te faltaria:

Código SQL:
Ver original
  1. CREATE OR REPLACE PROCEDURE MUESTRADATOSMECANICOS3
  2.   (v_puesto IN mecanicos.puesto%TYPE)
  3.      IS
  4.     v_datos mecanicos%rowtype;
  5.     cursor c_datos IS
  6.       SELECT * FROM mecanicos WHERE puesto = v_puesto;
  7.   BEGIN
  8.     IF NOT c_datos%isopen THEN
  9.       OPEN c_datos;
  10.       IF c_datos%NOTFOUND THEN
  11.          EXCEPTION
  12.             RAISE_APLICATION_ERROR(-20000,'No existe mecánicos con el puesto');
  13.       END IF;
  14.     END IF;
  15.     FETCH c_datos INTO v_datos;
  16.     WHILE c_datos%FOUND
  17.     LOOP
  18.         dbms_output.put_line('dni: ' || v_datos.dni);
  19.         dbms_output.put_line('nombre: ' || v_datos.nombre);
  20.         dbms_output.put_line('salario: ' || v_datos.salario);
  21.         FETCH c_datos INTO v_datos;
  22.     END LOOP;
  23.     CLOSE c_datos;
  24.   END MUESTRADATOSMECANICOS3;

saludos!
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:40.