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

Transcribir Cursor de Oracle a SQL Server 2008

Estas en el tema de Transcribir Cursor de Oracle a SQL Server 2008 en el foro de SQL Server en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 05/04/2011, 10:22
 
Fecha de Ingreso: abril-2011
Mensajes: 19
Antigüedad: 13 años
Puntos: 0
Transcribir Cursor de Oracle a SQL Server 2008

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;
  #2 (permalink)  
Antiguo 05/04/2011, 10:49
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Transcribir Cursor de Oracle a SQL Server 2008

La TEORIA dice que el 99.99% de lo que se hace con un cursor, se puede hacer un un simple T-SQL, ademas SQL Server, no se Oracle, es muy malo para hacer recorrido de registro por registro.

Mejor platicanos que hace tu proceso, ¿como ves?
__________________
MCTS Isaias Islas
  #3 (permalink)  
Antiguo 05/04/2011, 11:00
 
Fecha de Ingreso: abril-2011
Mensajes: 19
Antigüedad: 13 años
Puntos: 0
Respuesta: Transcribir Cursor de Oracle a SQL Server 2008

Muchas gracias iislas por responder!!
Coincido con vos en el caso de los Cursores, lo lamentable es que mi Gerente "no" jaja!!

Te comento, lo que necesito basicamente es transcribir la sintaxis para poder correrlo en SQL, no se si a simple vista se entienda lo que hace este cursor!

Muchas gracias de nuevo!

Etiquetas: cursor, oracle, server, sql
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 07:49.