Oracle - manejo de cursores para realizar productos entre t

 
Vista:

manejo de cursores para realizar productos entre t

Publicado por soledad (1 intervención) el 22/11/2006 22:54:46
hola

me estoy inicando en oracle y necesito recorer dos tablas al tiempo y multiplicar ciertos campos. Como cargo los dos cursores al tiempo , se cargar uno, por medio de un procedimiento, pero dos al tiempo ni idea.. Agradeceria si me pudieran decir donde leer o alguna ayuda.

gracias.

soledad
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

RE:manejo de cursores para realizar productos entr

Publicado por Ricardo (84 intervenciones) el 23/11/2006 15:14:54
Soledad:

Te voy a responder, partiendo de la hipótesis que tenemos dos tablas, una de artículos y uno de movimientos de ventas. Supongamos que lo que queremos hacer es actualizar los precios, agregando un 10% en los precios de la tabla de articulos y la de movimientos.

Tablas:

Articulos
cod_art number(10)
pre_art number(10,2)

Ventas
num_fac varchar2(12)
cod_art number(10)
pre_vta number(10,2)

Declare
Cursor arti is select * from articulos order by cod_art;
Cursor vtas(pcod_art in number) is select * from ventas
where cod_art=pcod_art ;
Begin
For r_arti in arti
Loop
upate articulos set pre_art = pre_art * 1.10 where cod_art = r_arti.cod_art;

For r_vtas in vtas(r_arti.cod_art)
Loop
Update vtas set pre_vta = pre_vta * 1.10 where cod_art = r_arti.cod_art;
End loop;
End loop;
Commit;
End;
/

Saludos
Ricardo
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