Ver Mensaje Individual
  #6 (permalink)  
Antiguo 10/03/2014, 09:46
Avatar de Libras
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