1
resposta

SAS - PROC SQL não traz a mesma quantidade de caracteres que o PROC PRINT

Olá, boa noite. Tudo bem?

Quanto tento fazer um PROC SQL simples de um campo texto, o SAS retorna menos caracteres. Se eu consulto a tabela com um duplo clik, ele retorna todos os caracteres perfeitamente. Se uso o PROC PRINT também, me retorna os caracteres perfeitamente.

Alguém saberia me dizer o por quê?

Obrigado

1 resposta

Oi, Rodrigo! Tudo bem?

Peço desculpas pelo tempo que esperou por uma resposta.

Essa questão pode acontecer devido às configurações de exibição padrão no SAS. A limitação de caracteres pode ser uma maneira de melhorar a visualização das informações, tornando a tabela "mais limpa" e enxuta.

Contudo, Rodrigo, reforço que apesar da exibição "truncada", os dados em si não estão sendo alterados ou perdidos, eles continuam na tabela!

Caso queira resolver esse problema, você pode definir, durante a criação da sua tabela, um valor limite de caracteres, fazendo com que todas as informações necessárias sejam apresentadas corretamente no PROC SQL.

Abaixo, estarei mostrando duas formas de definição de limite:

data dados;
   input coluna1 coluna2 $15.;
   datalines;
   dado1 dado2
   dado3 dado4
   ;
run;

Note que, durante a criação da tabela e de suas respectivas colunas, foi usado $15., indicando que as colunas precisam ter, no máximo, 15 caracteres. Lembre-se sempre de escrever o símbolo de cifrão, colocar o número limite e adicionar um ponto final.

Por outro lado, caso a criação da tabela aconteça por meio do PROC SQL, você pode estabelecer normalmente o número máximo de caracteres, assim como fazemos em um código padrão do SQL:

proc sql;
   CREATE TABLE dados (
      coluna1 CHAR(10),
      coluna2 VARCHAR(20),
   );
quit;

Rodrigo, espero que isso possa te ajudar. Contudo, vale ressaltar que como é um assunto externo aos cursos ofertados pela Alura e que não tenho acesso ao cenário completo do seu cenário, outros testes terão de ser feitos a fim de obter o resultado esperado, mas espero que esta resposta seja um bom ponto de partida para a resolução do seu problema!

Abraços.

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!