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

Problemas para llmar funcion valida rut

Estas en el tema de Problemas para llmar funcion valida rut en el foro de PostgreSQL en Foros del Web. hola soy io denuevo luego de poder agregar las funciones de la validacion de rut tengo el sgte problema que tengo estas dos funciones : ...
  #1 (permalink)  
Antiguo 12/03/2010, 04:10
 
Fecha de Ingreso: octubre-2009
Mensajes: 10
Antigüedad: 15 años
Puntos: 0
Problemas para llmar funcion valida rut

hola soy io denuevo luego de poder agregar las funciones de la validacion de rut tengo el sgte problema que tengo estas dos funciones :

CREATE OR REPLACE FUNCTION digito_verificador(varchar)
RETURNS char AS '
DECLARE
rut ALIAS FOR $1;
rut_cero varchar(8);
valor int;
BEGIN
valor := 0;
rut_cero := lpad(rut,8,''0'');

valor := valor + (substring(rut_cero,8,1)::int8)*2;
valor := valor + (substring(rut_cero,7,1)::int8)*3;
valor := valor + (substring(rut_cero,6,1)::int8)*4;
valor := valor + (substring(rut_cero,5,1)::int8)*5;
valor := valor + (substring(rut_cero,4,1)::int8)*6;
valor := valor + (substring(rut_cero,3,1)::int8)*7;
valor := valor + (substring(rut_cero,2,1)::int8)*2;
valor := valor + (substring(rut_cero,1,1)::int8)*3;

valor := valor % 11;

IF valor =1 THEN
RETURN ''K'';
END IF;
IF valor =0 THEN
RETURN ''0'';
END IF;
IF valor>1 AND valor<11 THEN
RETURN (11-valor)::char;
END IF;
END
' LANGUAGE plpgsql;
CREATE OR REPLACE FUNCTION valida_rut(varchar(9))
RETURNS bool AS '
DECLARE
rutfull ALIAS FOR $1;
rutfull_cero varchar(9);
rut varchar(8);
dv char;
BEGIN
IF rutfull IS NULL THEN
RETURN TRUE;
END IF;

rutfull_cero := lpad(rutfull,9,''0'');
rut:= substr(rutfull_cero,0,9);
dv := substr(rutfull_cero,9,1);

IF digito_verificador(rut)=upper(dv) THEN
RETURN TRUE;
ELSE
RETURN FALSE;
END IF;
END
' LANGUAGE plpgsql;

y el asunto es que no se como llamarlas desde el pg admin 3 para que al momento de ingresar el rut este sea validado si alguien puede ayudarme se le agradece...

Etiquetas: 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 11:48.