From 17d223408a1190f610090c9c11c6c1b07e0ce3cc Mon Sep 17 00:00:00 2001 From: RONALDO RODRIGUES DE OLIVEIRA Date: Tue, 22 Apr 2025 14:31:41 -0300 Subject: [PATCH] Mascara para CPF no padrão LGPD --- function_mascara_cpf_lgpd.sql | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 function_mascara_cpf_lgpd.sql diff --git a/function_mascara_cpf_lgpd.sql b/function_mascara_cpf_lgpd.sql new file mode 100644 index 0000000..7e28a8b --- /dev/null +++ b/function_mascara_cpf_lgpd.sql @@ -0,0 +1,27 @@ +-- drop function if exists public.mascara_cpf_lgpd(TEXT) +CREATE OR REPLACE FUNCTION public.mascara_cpf_lgpd(in_cpf TEXT) +RETURNS TEXT AS $$ +DECLARE + clean_cpf TEXT; + result TEXT; +BEGIN + + clean_cpf := regexp_replace(in_cpf, '[^0-9]', '', 'g'); + + IF char_length(clean_cpf) <> 11 THEN + RAISE EXCEPTION 'CPF inválido. Deve conter 11 dígitos.'; + END IF; + + result := substring(clean_cpf FROM 1 FOR 3) || '.XXX.XXX-' || substring(clean_cpf FROM 10 FOR 2); + + RETURN result; +END; +$$ LANGUAGE plpgsql; + + + + + + + + -- libgit2 0.25.0