SoloCodigo

Bases de Datos => Oracle => Mensaje iniciado por: ElNapster en Martes 18 de Noviembre de 2008, 06:28

Título: Recuperacion de valor 0
Publicado por: ElNapster en Martes 18 de Noviembre de 2008, 06:28
Hola a todos !!!!! estoy realizando un recuperacion de datos mediante un ciclo, pero al momento de hacer unas operaciones con los valores que me devuelve el ciclo, los valores que me opera me los devuelve con valor cero (o) ,porque sera ?

Les dejo el codigo que estoy utilizando:
Código: Text
  1.      FOR RECORRE_DET_FAC IN (SELECT CODIGO_P
  2.                                   , CANTIDAD
  3.                                FROM FAC_DET
  4.                               WHERE NUMERO = P_NUMERO
  5.                                 AND SERIE  = P_SERIE)
  6.      LOOP
  7.          SELECT PRECIO
  8.             INTO V_PRECIO
  9.            FROM PRODUCTOS
  10.           WHERE CODIGO_P = RECORRE_DET_FAC.CODIGO_P;
  11.            
  12.           V_ACUMULADOR := V_ACUMULADOR + (V_PRECIO * V_CANTIDAD);    
  13.  
  14.     END LOOP;
  15.  
  16.  

Es en la variable V_ACUMULADOR que me devuelve 0  :argh:

P.D.
Ya tengo las variables definidas tipo INT.

Muchas gracias por las sugerencias !!
Título: Re: Recuperacion de valor 0
Publicado por: juravi en Martes 18 de Noviembre de 2008, 16:03
Hola, Que valor tiene V_Cantidad, No veo q la cargues
Título: Re: Recuperacion de valor 0
Publicado por: ElNapster en Martes 18 de Noviembre de 2008, 16:22
Es una variable, el valor lo obtiene de un select, pero antes del ciclo.  :lol:

 :comp:
Título: Re: Recuperacion de valor 0
Publicado por: juravi en Martes 18 de Noviembre de 2008, 17:00
Bueno, no le veo nada malo, lo que puedes verificar es lo siguiente:
Has por fuera ambos select. (El cursor y el que usas para buscar el precio)
o usa un debuguer para ver que pasa, esto en el caso que el sql trae info. Si no tienes herramientas para hacer debug, usa el queri que publicaste, condicionalo y colocale dbms para ver que pasa, como un scrip normal.
Por que pareciera que es problema de data.
Título: Re: Recuperacion de valor 0
Publicado por: ElNapster en Martes 18 de Noviembre de 2008, 17:17
:(  te cuento que eso ya lo hice, no hice ninguna calculo estupendo , solo recupere los valores del ciclo, luego lo mande a imprimir en pantalla, la operacion que hice fue  V_ACUMULADOR :=V_PRECIO *1 ; , pero igual el no me devuelve ningun valor, y los datos si existen :( .............  :wacko:

 :hitcomp:
Título: Re: Recuperacion de valor 0
Publicado por: juravi en Martes 18 de Noviembre de 2008, 17:31
mmmm Esta raro, yo hice un ejemplito similar para ver y si me salio; te lo adjunto

Código: Text
  1. Declare
  2.   V_PRECIO     Number := 0;
  3.   V_ACUMULADOR Number := 0;
  4.   V_CATIDAD    Number := 3;
  5. Begin
  6.   For RECORRE_DET_FAC In (Select 1 CODIGO_P, 15 CANTIDAD From DUAL) Loop
  7.     Select 18.56 PRECIO Into V_PRECIO From DUAL;
  8.     V_ACUMULADOR := V_ACUMULADOR + (V_PRECIO * V_CATIDAD);
  9.   End Loop;
  10.   DBMS_OUTPUT.PUT_LINE('Acumulador ' || V_ACUMULADOR);
  11. End;
  12.  

Si notas, es tu mismo codigo, solo que con valores fijos.
Título: Re: Recuperacion de valor 0
Publicado por: ElNapster en Martes 18 de Noviembre de 2008, 17:33
Muchas gracias broth ! lo pruebo y te cuento  :beer:

 :comp: