Postgres - Mascara para Telefone

6 respostas Resolvido
postgresql
C

galera, pesquisei no google mas nenhum funcionou.

alguém sabe ?

6 Respostas

R

No banco vc coloca o valor bruto, exemplo:

[telefone removido]

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

([telefone removido]

J

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();
}
C

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

R
J

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.

C
Solucao aceita

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
Criado 11 de fevereiro de 2020
Ultima resposta 12 de fev. de 2020
Respostas 6
Participantes 3