dbo.actualizar_nacimiento_multiples

Description

Properties

Name Value
ANSI Nulls ON

True

Quoted Identifier ON

True

Encrypted

False

Execute As
Assembly

SQL Script

Copy
SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO
CREATE OR ALTER PROCEDURE dbo.actualizar_nacimiento_multiples 

AS
BEGIN
    SET NOCOUNT ON;
 declare @documento varchar(20)
 declare @cuit varchar(20)
 declare @id_tabla int


 DECLARE C_padron CURSOR FOR
  select top 100000 iif(substring(cuerpo_clave,1,1)=0,convert(int,cuerpo_clave),cuerpo_clave) as cuerpo_clave,id_tabla,cuit
  from temp_cuit_sin_fecha_nacimiento 
  where procesado =1 and multiple = 1 and pasada is null and cuerpo_clave is not null and anio_nacimiento is null  order by id_tabla asc

 OPEN C_Padron
 FETCH NEXT FROM C_Padron INTO @documento,@id_tabla,@cuit
 WHILE @@fetch_status = 0
 BEGIN
  begin try
  declare @anio_nacimiento varchar(4) = null
  declare @apellido varchar(100) = null
  declare @apellidos varchar(100) = null
  declare @persona_correcta tinyint = 0
  DECLARE Multiple CURSOR FOR
   --query
   select padron_electoral.apellidos from padron_electoral where documento = @documento
   OPEN Multiple
   FETCH NEXT FROM Multiple INTO @apellidos
   WHILE @@fetch_status = 0 and @persona_correcta = 0 
   BEGIN
    set @persona_correcta = (select count(*) from padrones where  contains(padrones.nombre_persona,@apellidos) and identificacion = @cuit)
    if(@persona_correcta  > 0)
     begin
      set @anio_nacimiento = (select anio_nacimiento from padron_electoral where documento = @documento and apellidos = @apellidos)  
      if(@anio_nacimiento is not null)
       begin
      --hizo match.
        update temp_cuit_sin_fecha_nacimiento set procesado = 1,anio_nacimiento = @anio_nacimiento,pasada = 1 where id_tabla = @id_tabla 
        
       end
     end
    FETCH NEXT FROM Multiple INTO @apellidos
   END  
   CLOSE Multiple
  DEALLOCATE Multiple
  if(@persona_correcta = 0)
   begin
    update temp_cuit_sin_fecha_nacimiento set procesado = 1,pasada = 2 where id_tabla = @id_tabla
    

   end
  end try
  begin catch
  --error.
   CLOSE Multiple
  DEALLOCATE Multiple
   update temp_cuit_sin_fecha_nacimiento set procesado = 1,multiple = 1,pasada = 3,error = ERROR_MESSAGE() where id_tabla = @id_tabla
   
  end catch
  FETCH NEXT FROM C_Padron INTO @documento,@id_tabla,@cuit
 END  
 CLOSE C_Padron
 DEALLOCATE C_Padron
END

GO

Used By

No items found