Maîtriser le débogage SAS : Points-virgules, guillemets et option NOAUTOCORRECT

Niveau de difficulté
Débutant
Publié le :
Michael

Le Conseil de l'Expert

Michael
Responsable de l'infrastructure Viya.

Face à une erreur de syntaxe, le premier réflexe est souvent de corriger "à la volée" pour faire tourner le programme. Pourtant, comprendre comment SAS interprète vos erreurs est ce qui sépare le débutant du développeur chevronné.

Une erreur de syntaxe n'est jamais isolée : un simple point-virgule oublié ou un guillemet non fermé peut provoquer une réaction en chaîne ("effet cascade") qui rend les messages d'erreur suivants totalement incohérents.

Le journal SAS (Log) n'est pas une punition, c'est votre outil de diagnostic le plus puissant. Apprenez à le lire comme une conversation avec le compilateur.

Cet article explore les différents types d'erreurs de syntaxe courantes dans le langage SAS©, telles que les mots-clés mal orthographiés, les guillemets non appariés, les points-virgules manquants ou les options d'instruction/jeu de données invalides. Il explique comment SAS© tente de corriger ces erreurs ou signale leur présence dans le journal. L'option système NOAUTOCORRECT est mentionnée pour contrôler le comportement de correction automatique de SAS©. Des exemples concrets avec leur sortie de journal sont fournis pour illustrer ces situations et aider à la compréhension des messages d'erreur.
Analyse des données

Type : CREATION_INTERNE


Les exemples utilisent des données générées (DATA step simple) ou SASHELP.

1 Bloc de code
DATA STEP / PROC PRINT Data
Explication :
Dans cet exemple, le mot-clé 'data' est mal orthographié en 'date'. SAS émet un avertissement mais continue le traitement en assumant l'intention correcte. Le programme crée et affiche un jeu de données nommé 'temp'.
Copié !
1date temp; /* */
2 x=1;
3RUN;
4 
5PROC PRINT DATA=temp;
6RUN;
2 Bloc de code
DATA STEP / PROC PRINT Data
Explication :
Le point-virgule est manquant à la fin de l'instruction DATA. SAS détecte une erreur de syntaxe et arrête le traitement de l'étape DATA. Le message d'erreur dans le journal indique l'emplacement possible de l'erreur et suggère qu'un nom, une chaîne de caractères entre guillemets, ou un point-virgule est attendu.
Copié !
1DATA temp
2 x=1;
3RUN;
4 
5PROC PRINT DATA=temp;
6RUN;
3 Bloc de code
NA
Explication :
Ces lignes peuvent être ajoutées au code pour aider à corriger les balises de commentaires non appariées, les guillemets non appariés et les points-virgules manquants, permettant à SAS de récupérer et de continuer le traitement du code.
Copié !
1/* '; * "; */;
2QUIT;
3RUN;
L'Astuce Pro
Pour neutraliser rapidement un programme SAS dont le flux est corrompu par des guillemets ou des blocs de commentaires mal fermés, insérez la chaîne de caractères spécifique /* '; * "; */; avant votre bloc de code afin de forcer la fermeture de tous les contextes syntaxiques ouverts et de réinitialiser l'analyseur de macros sans avoir à redémarrer votre session.
Ce matériel est fourni "tel quel" par We Are Cas. Il n'y a aucune garantie, expresse ou implicite, quant à la qualité marchande ou à l'adéquation à un usage particulier concernant le matériel ou le code contenu dans les présentes. We Are Cas n'est pas responsable des erreurs dans ce matériel tel qu'il existe maintenant ou existera, et We Are Cas ne fournit pas de support technique pour celui-ci.
Informations de Copyright : Copyright © SAS Institute Inc. All Rights Reserved