Foi desenvolvida uma extensão para o PostgreSQL contendo funções escritas na linguagem C para calcular os dígitos verificadores do CPF e do CNPJ alfanumérico, conforme especificado pela Receita Federal do Brasil na página CNPJ Alfanumérico.
Todos os arquivos da extensão encontram-se na página Validação do CPF e do CNPJ alfanumérico no GitLab. Também vale a pena ser vista a página Empacotamento de objetos relacionados em uma extensão para conhecer como é criada e usada uma extensão no PostgreSQL.
Para compilar o código-fonte da extensão escrito na linguagem
C basta executar o comando make,
porém para instalar a extensão é necessário executar
sudo make install, porque a instalação é feita nos
diretórios do PostgreSQL.
Para os usuários instalarem essa extensão e usar suas funções basta
executar o comando CREATE EXTENSION dvrfb; sem
haver necessidade de ser um superusuário ou ter algum privilégio
especial.
A seguir é mostrada a criação da extensão dvrfb no banco de dados ana da usuária ana, e seu uso com valores fornecidos pela Receita Federal para teste.
CREATE EXTENSION dvrfb;
CREATE EXTENSION
SELECT rfb_cpf('28001238938');
rfb_cpf --------- t (1 linha)
SELECT rfb_cnpj('900244200001A'); -- o dígito verificador é sempre um número
rfb_cnpj ---------- f (1 linha)
SELECT rfb_cnpj('R55231B3000757'); -- são validas letras de A a Z maiúsculas
rfb_cnpj ---------- t (1 linha)