Transcribir Cursor de Oracle a Sql server 2008????
Publicado por damprosys (1 intervención) el 06/04/2011 15:27:17
Hola muchachos, sucede que tengo un Cursor hecho en Oracle pero tengo que correrlo en una BD de Sql Server 2008, el problema es que debo trancribir el Script de Oracle a Sql para poder correrlo correctamente y la vedad no tengo mucha experiencia y no comprendo mucho de lo que dice el script de Oracle, si alguien me puede ayudar a traducirlo se lo voy a agradecer, lo dejo aca para que lo puedan ver!
Desde ya muchisimas gracias!!
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;
Desde ya muchisimas gracias!!
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;
Valora esta pregunta


0