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

funcion que valida_rut segun formula chile

Estas en el tema de funcion que valida_rut segun formula chile en el foro de SQL Server en Foros del Web. Funcion que recibe rut sin puntos y sin guion, que retorna un 0 si es valido si no un 1 si es incorrecto, ojala les ...
  #1 (permalink)  
Antiguo 17/01/2012, 15:34
 
Fecha de Ingreso: mayo-2011
Mensajes: 19
Antigüedad: 12 años, 11 meses
Puntos: 2
funcion que valida_rut segun formula chile

Funcion que recibe rut sin puntos y sin guion, que retorna un 0 si es valido si no un 1 si es incorrecto,

ojala les sea de utilidad!!!

CREATE FUNCTION VALIDA_RUT (@RUT VARCHAR(20))

--CREADO POR [email protected]

RETURNS int

AS
BEGIN
declare @num_rut varchar(20)
declare @dv_rut char(1)
declare @cont int
declare @num_multi int
declare @suma int
declare @resto int
declare @dv_final varchar(30)
declare @respuesta int -- si es 0 el rut es valido si es 1 el rut es incorrecto

set @num_rut=SUBSTRING(@rut,1,LEN(@rut)-1)
set @dv_rut=SUBSTRING(@rut,LEN(@rut),1)
set @num_rut= REVERSE(@num_rut)
set @cont=1
set @num_multi=2
set @suma=0

while @cont<= LEN(@num_rut)
begin

if @num_multi=8
begin
set @num_multi=2
end
IF CHARINDEX(SUBSTRING(@num_rut,@cont,1),'0123456789' )>0
BEGIN
set @suma=@suma + convert(int,SUBSTRING(@num_rut,@cont,1)) * @num_multi
END

set @num_multi = @num_multi + 1
set @cont = @cont + 1

end
set @resto= @suma % 11
set @dv_final = convert(char(2),11 - @resto)

if @dv_final='11'
begin
set @dv_final='K'
end
if @dv_final='10'
begin
set @dv_final='0'
end

if @dv_final=@dv_rut
begin
set @respuesta=0
end
else
begin
set @respuesta=1
end

return (@respuesta)
END

Etiquetas: chile, formula, funcion
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 08:36.