gke_arce_rupe2
.rupe
Tables
(current)
Columns
Constraints
Relationships
Orphan Tables
Anomalies
Routines
migrar_sub_familias()
Parameters
Name
Type
Mode
Definition
declare rev integer; family_cod varchar(255); family_id integer; sub_family_cod varchar(255); sub_family_id integer; sub_familia_id integer; sub_familia_codigo_familia varchar(255); sub_familia_codigo_sub_familia varchar(255); sub_familia_crea_fecha timestamp; sub_familia_crea_origen integer; sub_familia_crea_usu varchar(255); sub_familia_descripcion VARCHAR(255); sub_familia_fecha_baja date; sub_familia_habilitado boolean; sub_familia_motivo_baja varchar(255); sub_familia_ultmod_fecha timestamp; sub_familia_ultmod_origen integer; sub_familia_ultmod_usu varchar(255); sub_familia_version integer; sub_familia_family_id integer; sub_familia_descripcion_nuevo VARCHAR(255); sub_familia_fecha_baja_nuevo date; sub_familia_motivo_baja_nuevo varchar(255); /* cursor que retorna las sub familias en sice*/ C_sub_familia CURSOR FOR SELECT sa.fami_cod, sa.cod FROM rupe.sice_sub_familias sa; reg_sub_familia RECORD; BEGIN OPEN C_sub_familia; /* Recorro todas las sub familias que hay en sice */ LOOP FETCH C_sub_familia INTO reg_sub_familia; EXIT WHEN NOT FOUND; rev:= rupe.new_revid(); sub_familia_fecha_baja = NULL; sub_familia_motivo_baja = NULL; sub_familia_id = NULL; sub_familia_codigo_familia = NULL; sub_familia_crea_fecha = NULL; sub_familia_crea_origen = NULL; sub_familia_crea_usu = NULL; sub_familia_descripcion = NULL; sub_familia_habilitado = NULL; sub_familia_ultmod_fecha = NULL; sub_familia_ultmod_origen = NULL; sub_familia_ultmod_usu = NULL; sub_familia_version = NULL; sub_familia_habilitado = FALSE; sub_familia_descripcion_nuevo = NULL; sub_familia_fecha_baja_nuevo = NULL; sub_familia_motivo_baja_nuevo = NULL; select fami_cod, cod into family_cod, sub_family_cod from sice_sub_familias where fami_cod = reg_sub_familia.fami_cod and cod = reg_sub_familia.cod; select fs.sfs_id, fs.sfs_codigo_familia, fs.sfs_codigo_sub_familia, fs.sfs_crea_fecha, fs.sfs_crea_origen, fs.sfs_crea_usu, fs.sfs_descripcion, fs.sfs_fecha_baja, fs.sfs_habilitado, fs.sfs_motivo_baja, fs.sfs_ultmod_fecha, fs.sfs_ultmod_origen, fs.sfs_ultmod_usu, fs.sfs_version, fs.sfs_familia_sice_fms_id into sub_familia_id, sub_familia_codigo_familia,sub_familia_codigo_sub_familia, sub_familia_crea_fecha, sub_familia_crea_origen, sub_familia_crea_usu, sub_familia_descripcion, sub_familia_fecha_baja, sub_familia_habilitado, sub_familia_motivo_baja, sub_familia_ultmod_fecha, sub_familia_ultmod_origen, sub_familia_ultmod_usu, sub_familia_version, sub_familia_family_id from rupe.rupe_sub_familias_sice fs where fs.sfs_codigo_familia = family_cod and fs.sfs_codigo_sub_familia = sub_family_cod; select fami_cod, cod, descripcion, fecha_baja, motivo_baja into family_cod, sub_family_cod,sub_familia_descripcion_nuevo, sub_familia_fecha_baja_nuevo, sub_familia_motivo_baja_nuevo from sice_sub_familias where cod = reg_sub_familia.cod and fami_cod = reg_sub_familia.fami_cod; /*obtengo el id de la familia */ select fm.fms_id into family_id from rupe.rupe_familias_sice fm where fm.fms_codigo_familia = family_cod; if (sub_familia_id is null) then sub_familia_habilitado = FALSE; sub_familia_crea_usu = 'MIGRACION'; sub_familia_ultmod_usu = 'MIGRACION'; sub_familia_crea_origen = 1; sub_familia_ultmod_origen = 1; if (sub_familia_fecha_baja IS NULL) THEN sub_familia_habilitado = TRUE; end if; insert into rupe.rupe_sub_familias_sice (sfs_codigo_familia,sfs_codigo_sub_familia,sfs_crea_fecha,sfs_crea_origen,sfs_crea_usu,sfs_descripcion,sfs_fecha_baja,sfs_habilitado,sfs_motivo_baja,sfs_ultmod_fecha,sfs_ultmod_origen,sfs_ultmod_usu,sfs_version,sfs_familia_sice_fms_id) values (family_cod, sub_family_cod, current_timestamp, sub_familia_crea_origen, sub_familia_crea_usu, sub_familia_descripcion_nuevo, sub_familia_fecha_baja_nuevo, sub_familia_habilitado, sub_familia_motivo_baja_nuevo, current_timestamp, sub_familia_ultmod_origen, sub_familia_ultmod_usu, 0, family_id); select fam.sfs_id into sub_family_id from rupe.rupe_sub_familias_sice fam where fam.sfs_codigo_familia = family_cod and fam.sfs_codigo_sub_familia = sub_family_cod; insert into audit.rupe_sub_familias_sice_aud values (sub_family_id,rev,0, family_cod, sub_family_cod, current_timestamp, sub_familia_crea_origen, sub_familia_crea_usu, sub_familia_descripcion_nuevo, sub_familia_fecha_baja_nuevo, sub_familia_habilitado, sub_familia_motivo_baja_nuevo, current_timestamp, sub_familia_ultmod_origen, sub_familia_ultmod_usu, 0, family_id); else if (sub_familia_fecha_baja IS NULL) THEN sub_familia_habilitado = TRUE; end if; if ((sub_familia_family_id != family_id) or (sub_familia_descripcion != sub_familia_descripcion_nuevo) or (sub_familia_fecha_baja != sub_familia_fecha_baja_nuevo) or (sub_familia_motivo_baja != sub_familia_motivo_baja_nuevo)) THEN insert into audit.rupe_sub_familias_sice_aud values (sub_familia_id,rev,1, sub_familia_codigo_familia,sub_familia_codigo_sub_familia, sub_familia_crea_fecha, sub_familia_crea_origen, sub_familia_crea_usu, sub_familia_descripcion_nuevo, sub_familia_fecha_baja_nuevo, sub_familia_habilitado, sub_familia_motivo_baja_nuevo, current_timestamp, sub_familia_ultmod_origen, 'MIGRACION', sub_familia_version+1,family_id); update rupe.rupe_sub_familias_sice set sfs_descripcion = sub_familia_descripcion_nuevo, sfs_ultmod_fecha = current_timestamp, sfs_ultmod_usu = 'MIGRACION', sfs_habilitado = sub_familia_habilitado, sfs_fecha_baja = sub_familia_fecha_baja_nuevo, sfs_motivo_baja = sub_familia_motivo_baja_nuevo, sfs_version = (sfs_version + 1), sfs_familia_sice_fms_id = family_id where sfs_id = sub_familia_id; end if; end if; END LOOP; CLOSE C_sub_familia; Raise debug 'finalizo el proceso de actualizar las sub familias '; END;