Ver Mensaje Individual
  #4 (permalink)  
Antiguo 03/02/2012, 01:34
jc3000
 
Fecha de Ingreso: junio-2007
Mensajes: 891
Antigüedad: 16 años, 10 meses
Puntos: 43
Respuesta: intento eliminar unas filas pero no me resulta, en que me estoy equivocand

Cita:
Iniciado por Sh3r3z4d4 Ver Mensaje
Otra observacion leo_star es que jamas cierras tu cursor te faltaria...

ademas me imagino que ocupas el cursor para otra cosa por que no entiendo para que haces un cursor a la tabla SYSTEM.CONTROL_PERMISOS y en el delete haces exactamente lo mismo


y con respecto al error que te manda creo k te funcionaria asi

'DELETE FROM SYSTEM.CONTROL_PERMISOS WHERE USUARIO = '''|| v_user||'''';



CURSOR borra_usuario IS SELECT USUARIO, ROL FROM SYSTEM.CONTROL_PERMISOS WHERE USUARIO = v_usuario;

BEGIN
OPEN borra_usuario;
LOOP
FETCH borra_usuario INTO v_user, v_rol;
EXIT WHEN borra_usuario%NOTFOUND;
consulta:= 'DELETE FROM SYSTEM.CONTROL_PERMISOS WHERE USUARIO = '|| v_user;

EXECUTE IMMEDIATE consulta;

END LOOP;
CLOSE borra_usuario;
COMMIT;
END BORRAR_ROLES_USUARIO;
Correcto, las comillas las has puesto correctamente, acabo de comprobarlo.

Otra cosa, creo que esto : EXECUTE IMMEDIATE consulta;

Debe de ir así : EXECUTE IMMEDIATE(consulta);

Y respecto a los cursores, recomiendo usar una variable en lugar del open,

FOR VARIABLE IN CURSOR LOOP

..
..

END LOOP;

Todo eso lleva un OPEN-CLOSE-EXIT implicito y te evitas el teclearlo.

Salu2