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 ; ^ |
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 |
-- 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
-
Giovani Da Cruz
-
3.549 views
- 0 comentários
- 4 de outubro de 2016
Está gostando do conteúdo? Considere pagar um cafezinho para nossa equipe!
Posts Relacionados - Continue Aprendendo