✆  55 (11) 3382-1503    |   ⌧  comercial@infomev.com.br       

Praticando….

Hora de praticar seus conhecimentos em SAS!

Mais um exercício para você testar o seu nível de conhecimento na ferramenta!!

Precisamos encaminhar uma base de dados para um órgão governamental com uma lista de clientes que possuem restritivos. Eles solicitaram que a nossa base tenha
o CPF como chave.
Pediram também que o CPF seja enviado com tipo Caracter, com Ponto a cada 3 dígitos e hífen para separar o dígito verificador. Ex: 111.111.111-11
Se o CPF tiver menos de 11 dígitos, deve estar preenchido com zeros à esquerda.

Você deve recriar o dataset TB_CLI_RESTR, criando o TB_CLI_RESTRITIVOS. Nesse dataset, a variável CPF está numérica. Recriar o CPF como caracter e com o formato solicitado.

Para fazer os testes, utilize o código abaixo que criará a TB_CLI_RESTR com CPF e nome.

data TB_CLI_RESTR;
input CPF
Nome $;
datalines;
18166532814 Ana
2893365857 João
1434765902 Luís
1675217 Tibúrcio
16203738 Isabela
;
run;

 

 

 

Solução:
——–
/* Criação do formato com a máscara 9 para preencher com zeros à esquerda */
/* A opção Mult=1 multiplica o número por 0,01 para transformar os 2 últimos números do CPF em casas decimais. O hífen é definido como símbolo para separar casas
decimais. */
PROC FORMAT;
PICTURE FMCPF LOW-HIGH =’999.999.999-99′ (MULT=1);
RUN;

/* Geração da tabela com a conversão do CPF */
DATA TB_CLI_RESTRITIVOS;
LENGTH CPF $14;
SET TB_CLI_RESTR (RENAME=(CPF=CPF_OLD));
DROP CPF_OLD;
CPF=PUT(CPF_OLD, FMCPF.); /* Aplicação do formato criado no passo anterior, convertendo a variável CPF_OLD de número para caracter */
RUN;