Store Procedure para aplicar máscara no SQL. – Show Delphi

DICAS

Visite a biblioteca de dicas da comunidade.

Saiba mais

ARTIGOS

Abordagens detalhadas sobre assuntos diversos.

Saiba mais

INICIANTES

Aprenda a programar de um modo simples e fácil.

Saiba mais

DOWNLOADS

Acesse os materiais exclusivos aos membros.

Saiba mais
voltar

PARA QUEM GOSTA DE DELPHI

Store Procedure para aplicar máscara no SQL.

 

Muitas vezes temos a necessidade de gerar arquivos ou relatórios de
modo simples e rápido.

E normalmente os dados são salvos sem a máscara no banco de dados.

Com esta simples stored procedure, podemos fazer nossas
consultas SQL já retornarem as informações formatadas.

Código da Stored Procedure: Para Firebird

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
SET TERM ^ ;
 
CREATE OR ALTER PROCEDURE UTIL_APLICA_MASCARA (
    IN_MASCARA VARCHAR(20),
    IN_TEXTO VARCHAR(100))
RETURNS (
    OUT_RESULTADO VARCHAR(120))
AS
DECLARE variable VLOOP INTEGER;
DECLARE variable V_POS INTEGER;
BEGIN
  IF (
  (TRIM(:in_mascara) = '') OR
  (:in_mascara IS NULL) OR
  (:in_texto IS NULL)
  ) THEN
  BEGIN
    suspend;
    exit;
  END
 
  vloop = 1;
  v_pos = 1;
 
  out_resultado = '';
 
  while (vloop <= CHAR_LENGTH(:in_mascara)) do
  BEGIN
    IF ((SUBSTRING(:in_mascara FROM :vloop FOR 1) IN
    ('.', '\', '/', '-', '(', ')', ' ', '|') )) then
    begin
      out_resultado = :out_resultado || substring(:in_mascara from :vloop for 1);
    end
    else
    begin
      out_resultado = :out_resultado || substring(:in_texto from :v_pos for 1);
 
      v_pos = v_pos + 1;
    end
 
    vloop = vloop + 1;
  end
 
  suspend;
end^
 
SET TERM ; ^

Exemplos de uso:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
-- CPF
SELECT
u.out_resultado
FROM util_aplica_mascara('999.999.999-99', '94461023249') u
 
-- CNPJ
SELECT
u.out_resultado
FROM util_aplica_mascara('99.999.999/9999-99', '92441217000155') u
 
-- CEP
SELECT
u.out_resultado
FROM util_aplica_mascara('99.999-999', '99200000') u
 
-- TELEFONE
SELECT
u.out_resultado
FROM util_aplica_mascara('(99) 9999-9999', '5434439621') u
 
-- uso geral (REFERENCIAS)
SELECT
u.out_resultado
FROM util_aplica_mascara('99.9999.99.9999', '012345678901') u
Facebook Comments

Posts Relacionados

  • Giovani Da Cruz
  • 147 views
  • 0 comentários
  • 4 de outubro de 2016

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Ir ao topo

© 2016 Infus Soluções em Tecnologia - Todos os Direitos Reservados