Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Oracle »

funciones y cursores limpiar BD

Estas en el tema de funciones y cursores limpiar BD en el foro de Oracle en Foros del Web. Estimados debo realizar un procedimiento, funcion o cursor que limpie una BD uno de los ejercicios es verificar si el campo ultimacompra (date) tiene una ...
  #1 (permalink)  
Antiguo 10/07/2014, 15:29
 
Fecha de Ingreso: julio-2014
Mensajes: 1
Antigüedad: 9 años, 9 meses
Puntos: 0
Exclamación funciones y cursores limpiar BD

Estimados debo realizar un procedimiento, funcion o cursor que limpie una BD uno de los ejercicios es verificar si el campo ultimacompra (date) tiene una data de mas de 2 años en caso de ser asi copiar a ese cliente en una tabla llamada errorperdida y eliminarlo de la tabla clientes en la que se encuentra.

es primera vez que trabajo con PL/SQL solo tengo esto y no se muy bien si servira espero me puedan orientar

Cita:
DECLARE
c_numero clientes.numero%type;
c_nombre clientes.nombre%type;
c_apellido clientes.apellido%type;
c_direccion clientes.direccion%type;
c_rut clientes.rut%type;
c_telefono clientes.telefono%type;
c_ultimacompra clientes.ultimacompra%type;
CURSOR c_client is
SELECT numero, nombre, apellido, direccion, rut, telefono, ultimacompra FROM clientes;
BEGIN
OPEN c_client;
LOOP
FETCH c_client into c_numero, c_nombre, c_apellido, c_direccion, c_rut, c_telefono, c_ultimacompra;
EXIT WHEN c_client%notfound;



insert into error_comuna(numero,nombre,apellido, direccion, rut, telefono, ultimacompra)
values(c_numero, c_nombre, c_apellido, c_direccion, c_rut, c_telefono, c_ultimacompra);

delete from Clientes where numero = c_numero;

END LOOP;
CLOSE c_client;
END;

/* ENTREGA SI HAN PASADO 2 AÑOS */

DECLARE
fech number;
CURSOR f_client is
SELECT (EXTRACT (YEAR FROM ultimacompra)) INTO fech FROM clientes;
BEGIN
open f_client;
loop
fetch f_client into fech;
exit when f_client%notfound;

IF fech < 2014 THEN
insert into añoultimo(num) values (fech);
END IF;

end loop;
close f_client;
END;
  #2 (permalink)  
Antiguo 12/07/2014, 04:44
 
Fecha de Ingreso: junio-2007
Mensajes: 891
Antigüedad: 16 años, 10 meses
Puntos: 43
Respuesta: funciones y cursores limpiar BD

¿ y esto no te sirve ?

Código SQL:
Ver original
  1. INSERT INTO ERRORES
  2. SELECT VALORES FROM TABLA_ORIGEN
  3. WHERE CAMPO_DATE < SYSDATE - DOS_AÑOS;
  4.  
  5. COMMIT;
  6.  
  7. DELETE FROM TABLA_ORIGEN
  8. WHERE CAMPO_DATE < SYSDATE - DOS_AÑOS;
  9.  
  10. COMMIT;

Etiquetas: cursor, cursores, funciones, limpiar, procedimientos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:59.