Funções PSQL Úteis
Confira abaixo uma coleção de funções PSQL práticas e testadas para uso no FirebirdSQL. Cada função resolve problemas comuns do dia a dia no desenvolvimento e administração de bancos de dados.
O que são Funções e Procedimentos PSQL?
O PSQL (Procedural SQL) é a extensão da linguagem SQL do Firebird que permite a criação de rotinas complexas diretamente no banco de dados. Permite criar Stored Procedures, Triggers, Stored Functions e tratamento de exceções, reduzindo o tráfego de rede e centralizando regras de negócio.
Como extrair apenas o texto de um conteúdo RTF
Função GET_UNRTF para extrair texto puro de conteúdos RTF, removendo todas as tags de formatação. Útil para tornar textos RTF pesquisáveis e analisáveis.
Como extrair apenas o texto de um conteúdo HTML
Função GET_UNHTML que remove todas as tags HTML de um conteúdo, retornando apenas o texto puro. Mais simples que a extração de RTF, envolve apenas remover o que está entre os delimitadores "<" e ">".
Converter um texto em NUMERIC(18,4) ou NUMERIC(18,2)
Função STR_TO_NUMERIC4 para converter strings formatadas (como 'R$ 1.123,4567') em valores numéricos. Analisa a string da direita para esquerda para determinar o separador decimal.
Arredondamento do tipo ABNT em itens de serviço NFs
Função GET_ROUND_AS_ABNT que aplica a norma ABNT para arredondamento de preços em itens de serviço de Notas Fiscais. Resolve o caso especial onde números pares seguidos de 5 e zeros não são arredondados.
Retornando apenas dígitos válidos de uma string
Função STR_DIGITS que extrai apenas os caracteres desejados de uma string. Permite definir quais caracteres são válidos, útil para limpar telefones, CPF, CNPJ, CEP e outros dados formatados.
Colocando aspas simples numa string que talvez já tenha aspas também
Função STR_QUOTED equivalente ao QuotedStr do Pascal. Coloca uma string entre aspas simples e opcionalmente duplica aspas internas para uso seguro em comandos SQL com EXECUTE STATEMENT.
Como converter um numero para texto formatado
Função GET_FORMAT_FLOAT para formatar números com separadores de milhar e decimal. Suporta arredondamento e permite personalizar os separadores, transformando 123456789.0987654 em '123.456.789,10'.
Pegando o primeiro dia do mês de uma determinada data
Função GET_FIRST_DAY_OF_MONTH que retorna o primeiro dia do mês de uma data em formato timestamp. Trabalha em conjunto com GET_LAST_DAY_OF_MONTH para consultas de períodos mensais.
Pegando o ultimo dia do mês de uma determinada data
Função GET_LAST_DAY_OF_MONTH que retorna o último dia do mês de uma data em formato timestamp. Útil para consultas de fechamento mensal e períodos que vão do dia 01 até o final do mês.
Conclusão
Dominar o PSQL transforma o banco de dados de um mero repositório de tabelas em uma camada inteligente da aplicação. Isso resulta em sistemas mais rápidos, seguros e fáceis de manter a longo prazo.