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

Validacion rut

Estas en el tema de Validacion rut en el foro de PostgreSQL en Foros del Web. Necesito el codigo de la validacion del rut para postgres... si alguien lo tiene es urgente se lo agradeceria....
  #1 (permalink)  
Antiguo 09/03/2010, 21:56
 
Fecha de Ingreso: octubre-2009
Mensajes: 10
Antigüedad: 14 años, 5 meses
Puntos: 0
Exclamación Validacion rut

Necesito el codigo de la validacion del rut para postgres... si alguien lo tiene es urgente se lo agradeceria.
  #2 (permalink)  
Antiguo 09/03/2010, 22:14
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: Validacion rut

if rut = 1 then
validado
else
sin validar
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #3 (permalink)  
Antiguo 09/03/2010, 22:33
 
Fecha de Ingreso: octubre-2009
Mensajes: 10
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: Validacion rut

a vale gracias por la respuesta
estoy utilizando este codigo

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;

pero me envia el sgte mensaje de error
ERROR: syntax error at or near "DECLARE" at character 70

Última edición por gunckel; 09/03/2010 a las 22:41
  #4 (permalink)  
Antiguo 10/03/2010, 07:05
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: Validacion rut

pruebalo así

Código SQL:
Ver original
  1. CREATE OR REPLACE FUNCTION valida_rut(VARCHAR(9))
  2. RETURNS bool AS
  3. $BODY$
  4. DECLARE
  5. rutfull ALIAS FOR $1;
  6. rutfull_cero VARCHAR(9);
  7. rut VARCHAR(8);
  8. dv CHAR;
  9. respuesta bool;
  10. BEGIN
  11. IF rutfull IS NULL THEN
  12. respuesta = TRUE;
  13. END IF;
  14.  
  15. rutfull_cero := lpad(rutfull,9,''0'');
  16. rut:= substr(rutfull_cero,0,9);
  17. dv := substr(rutfull_cero,9,1);
  18.  
  19. IF digito_verificador(rut)=UPPER(dv) THEN
  20. respuesta = TRUE;
  21. ELSE
  22. respuesta = FALSE;
  23. END IF;
  24. RETURN respuesta;
  25. END;
  26. $BODY$
  27. LANGUAGE 'plpgsql';

Las etiquetas $body$ son para establecer el bloque central del procedimiento.

saludos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #5 (permalink)  
Antiguo 10/03/2010, 16:11
 
Fecha de Ingreso: octubre-2009
Mensajes: 10
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: Validacion rut

Cita:
Iniciado por huesos52 Ver Mensaje
pruebalo así

Código SQL:
Ver original
  1. CREATE OR REPLACE FUNCTION valida_rut(VARCHAR(9))
  2. RETURNS bool AS
  3. $BODY$
  4. DECLARE
  5. rutfull ALIAS FOR $1;
  6. rutfull_cero VARCHAR(9);
  7. rut VARCHAR(8);
  8. dv CHAR;
  9. respuesta bool;
  10. BEGIN
  11. IF rutfull IS NULL THEN
  12. respuesta = TRUE;
  13. END IF;
  14.  
  15. rutfull_cero := lpad(rutfull,9,''0'');
  16. rut:= substr(rutfull_cero,0,9);
  17. dv := substr(rutfull_cero,9,1);
  18.  
  19. IF digito_verificador(rut)=UPPER(dv) THEN
  20. respuesta = TRUE;
  21. ELSE
  22. respuesta = FALSE;
  23. END IF;
  24. RETURN respuesta;
  25. END;
  26. $BODY$
  27. LANGUAGE 'plpgsql';

Las etiquetas $body$ son para establecer el bloque central del procedimiento.

saludos
muchas grax por la respuesta pero encontre cual era el error, me faltaba agregar el lenguaje plpgsql a la base de datos ahora tengo la duda como llamo a la funcion desde la columna rut de la tabla en el pgadmin III, aunque estamos averiguando cualquier ayuda se agradece

Etiquetas: Ninguno
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:13.