Oracle - Error en sentencia return

 
Vista:

Error en sentencia return

Publicado por JImy Peña (2 intervenciones) el 08/11/2017 14:44:09
Hola a todos, de antemano gracias por su ayuda.

Tengo una duda y es la siguiente:

Tengo un procedimiento en PL/SQL dentro de ese procedimiento hay una condición IF, si se cumple esa condición, le estoy diciendo que me retorne un valor.

El asunto es que cuando llega a la sentencia RETURN que esta dentro del IF, el procedimiento se va hasta el final de la instrucción e ignora el resto de comandos que hay.

Soy nuevo en esto de Oracle, tal vez sea una tontería, pero me esta quemando el cráneo.

Gracias !!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 499
Oro
Ha mantenido su posición en Oracle (en relación al último mes)
Gráfica de Oracle

Error en sentencia return

Publicado por Rafael (328 intervenciones) el 08/11/2017 16:38:35
Chico AYUDATE!!!

Nos pones tu codigo???
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Elvis
Val: 209
Plata
Ha mantenido su posición en Oracle (en relación al último mes)
Gráfica de Oracle

Error en sentencia return

Publicado por Elvis (102 intervenciones) el 08/11/2017 20:11:20
Estimado si colocas un return es como que hicieras un break el procedidure te recimiendo hacer esto:

1
2
3
4
5
6
7
8
9
CREATE PROCEDURE PU_P_INSERTAR (A IN  NUMBER, B IN NUMBER, C OUT NUMBER) IS
BEGIN
  IF A > 0 THEN
    C :=1;
  ELSE
   C:=0;
  END IF;
 
END  PU_P_INSERTAR;

Si te das cuenta en nungun momento coloco un return para que C contenga un valor de retorno esto es automtatico ya que el proceso debe sigue hasta el final osea hasta el END PU_P_INSERTAR; salvo el caso que desees colocar una exception y alli coloque el return para que el llamado al procedimiento salga y vuelva (return) donde fue llamado, salvo que sea una funcion alli obligatoriamente oracle te pide un valor obligado de retorno

1
2
3
4
5
6
7
8
9
10
11
12
13
14
CREATE PROCEDURE PU_P_INSERTAR (A IN  NUMBER, B IN NUMBER, C OUT NUMBER) IS
Le_Error EXCEPTION;
BEGIN
  IF A > 0 THEN
    C :=1;
  ELSIF A=0 THEN
   C:=0;
  ELSE
    RAISE Le_Error;
  END IF;
EXCEPTION
  WHEN Le_Error THEN
   RETURN;
END  PU_P_INSERTAR;


Espero hacerme entender.

Saludos...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Error en sentencia return

Publicado por JImy peña (2 intervenciones) el 08/11/2017 20:18:58
Gracias Elvis, me quedo claro, voy a proceder a organizar la sentencia tal cual indicas, mil gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Elvis
Val: 209
Plata
Ha mantenido su posición en Oracle (en relación al último mes)
Gráfica de Oracle

Error en sentencia return

Publicado por Elvis (102 intervenciones) el 08/11/2017 20:21:57
Ok, si lo solucionas indicálo en el foro y si no tambien indicála para poder solventarla.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar