Postgres - Mascara para Telefone

galera, pesquisei no google mas nenhum funcionou.

alguém sabe ?

No banco vc coloca o valor bruto, exemplo:

11912345678

Agora pra passar pra uma linguagem de programação vc formata:

(11) 91234-5678

Se quiser criar uma máscara via SQL aqui eu tenho um exemplo usando regex e tratando números com 10 e 11 dígitos.

private String sqlConsultaBase() {
    sql.delete(0, sql.length());
    sql.append(" SELECT CC.CODCONTATO, CC.CODPESSOA, CP.NOMPESSOA, CC.DESCONTATO, CC.NUMTELEFONE, CC.DESEMAIL, CC.INDSITUACAO, CC.INDTIPOCONTATO, ");
    sql.append(" CASE CHAR_LENGTH(CC.NUMTELEFONE) WHEN 11 THEN regexp_replace(LPAD(CC.NUMTELEFONE, 11, '0'), '([0-9]{2})([0-9]{5})([0-9]{4})','(\\1) \\2-\\3') ");
    sql.append(" WHEN 10 THEN regexp_replace(LPAD(CC.NUMTELEFONE, 10, '0'), '([0-9]{2})([0-9]{4})([0-9]{4})','(\\1) \\2-\\3') END AS NUMTELEFONEF, ");
    sql.append(" CASE CC.INDSITUACAO WHEN 'A' THEN 'ATIVO' ELSE 'INATIVO' END AS SITUACAO, ");
    sql.append(" CASE CC.INDTIPOCONTATO WHEN 'P' THEN 'PRINCIPAL' ELSE 'OUTROS' END AS TIPOCONTATO, ");
    sql.append(" TO_CHAR(CC.DATCADASTRO, 'DD/MM/YYYY') AS DATA ");
    sql.append(" FROM CADCONTATO CC ");
    sql.append(" INNER JOIN CADPESSOA CP ON(CC.CODPESSOA = CP.CODPESSOA) ");
    return sql.toString();
}

a ideia é sair formatado no jasper.
o sql acima não funcionou. está saindo errado.
também estou aceitando ideias de como formatar no jasper

A própria ferramenta já oferece recursos de formatação, basta olhar as propriedades do field desejado e adicionar um pattern ao mesmo.

Como sua pergunta se referia ao postgres imaginei que queria formatar uma saída de um SQL, se tivesse dito com mais clareza que estava tentando formatar uma data no Jasper a comunidade teria te ajudado com maior assertividade.

1 curtida

resolvido!

Select
  sgi_instituicao.ins_int_id,
  sgi_instituicao.ins_bin_logo,
'('||SUBSTRING (ins_txt_telefone, 1, 2)||')' ||SUBSTRING (ins_txt_telefone, 3, 4)||'-'||SUBSTRING (ins_txt_telefone, 7, 8) as ins_txt_telefone,

  sgi_instituicao.ins_txt_email,
  sgi_instituicao.ins_txt_instituicao,
  sgi_instituicao.ins_txt_cnpj
From
  sgi_instituicao
  where   sgi_instituicao.ins_int_id= 2