Oracle - PLSQL con UPDATE....ayuda

 
Vista:

PLSQL con UPDATE....ayuda

Publicado por Andres Felipe Franco (5 intervenciones) el 05/11/2006 12:28:54
me colocaron esto.....
cree un procedimiento para aumentar los salarios de los vendedores asi:

rango porcentaje
2000000-3000000 20%
3000000-4000000 15%
mas de 4000000 10%

CREATE or replace PROCEDURE punto#9
IS
contador number(10);
CURSOR curname is SELECT salario
FROM vendedo;
begin
for wcur in curname
loop
if (wcur.salario>=2000000 and wcur.salario<3000000) THEN
update vendedo
set salario=salario*0.20+salario

end if;
end loop;
end;
/

yo hice solo el primer if para ensayar...pero resulta...........que como esta con un cursor y va uno por uno, con una sola vez que entre me actualiza uno que este dentro de ese rango, pero como va de uno en uno,,, si mas abajo encuentra uno dentro de ese rango.....y ya lo habia actualizado me lo vuelve a aumentar .............como soluciono esto?????????????????????????
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:PLSQL con UPDATE....ayuda

Publicado por Ricardo (84 intervenciones) el 06/11/2006 14:50:25
Si a lo que te estás refiriendo es a que en una segunda ejecución ves que se aumentan sueldos que ya se habian aumentado y que correspondían a otro, 'rango', lo unico que se me ocurre es que coloques una 'marca' actualizado ='S' con cada update que hagas y que al where del cursor le coloques además "and nvl(actualizado,'N')='N'"...

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

RE:PLSQL con UPDATE....ayuda

Publicado por Alejandro César (189 intervenciones) el 13/11/2006 17:55:44
No veo por ningun lado el where que la sentencia UPDATE, entonces lo que estás haciendo es actualizando toda la tabla en cada iteración del ciclo. En otras palabras tu cursor curname debería seleccionar la llave de la tabla VENDEDO y usarla en el update dentro del ciclo de tal forma que en cada iteración actualizarás en salario de un vendedor a la vez.

Salu2.
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