Hola gente, antes que nada quiero darles las gracias por todas las veces que me han sacado de algun apuro, este es mi primer Tread pero hace mucho que navego esta web fabulosa!
Bueno, al punto, estoy necesitando trancribir un Cursor que esta escrito para Oracle y lo necesito correr en una BD de Sql Server 2008, si alguien me puede dar una mano se lo voy a agradecer (por que la verdad no puedo definir algunas cosas).
Este cursor lo que hace es actualizar una tabla (previamente creada) recorriendo otras tablas, basicamente es el control periodico de las actividades de los usuarios.
Aca les dejo el cursor, si alguien me da una mano con esto se lo voy a agradecer!
declare
cursor registros is
select r.idases, r.estado, r.motivo, r.irresoluble, a.tipo_aud, a.auditado, r.iduser usuario, a.usuario usuario_aud, r.fecha fecha_modif, a.FECHA fecha_aud
from mer_90_1_r r, mer_90_1_au a
where r.idases=a.idases(+)
and (a.usuario is not null
or r.iduser is not null)
order by r.fecha, a.fecha;
aux_idsec number;
new_idsec number;
aux_existe number;
v_nrolote varchar2(5);
v_objnor varchar2(5);
begin
for a in registros loop
aux_existe:=0;
select count(*)
into aux_existe
from seguimiento_proyecto_db
where
idases=a.idases
and NVL(estado,'XX')=NVL(a.estado,'XX')
and NVL(motivo,'XX')=NVL(a.motivo,'XX')
and NVL(irresoluble,9)=NVL(irresoluble,9)
and NVL(tipo_aud,'XX')=NVL(a.tipo_aud,'XX')
and NVL(auditado,'XX')=NVL(a.auditado,'XX')
and NVL(usuario,'XX')=NVL(a.usuario,'XX')
and NVL(usuario_aud,'XX')=NVL(a.usuario_aud,'XX');
if aux_existe = 0 then
select max(idsec)
into aux_idsec
from seguimiento_proyecto_db
where idases=a.idases;
new_idsec:= aux_idsec+1;
insert into seguimiento_proyecto_db
(idsec, idases, fecha_ult_seguimiento, estado, motivo, irresoluble, tipo_aud, auditado, usuario, usuario_aud, fecha_modif, fecha_aud)
values
(new_idsec,a.idases,sysdate,a.estado, a.motivo, a.irresoluble, a.tipo_aud, a.auditado, a.usuario, a.usuario_aud, a.fecha_modif, a.fecha_aud);
end if;
end loop;
commit;
end;