Les erreurs les plus fréquentes recensées dans la LOG

La plupart des erreurs donnant lieu à des messages dans la LOG consistent en des erreurs de syntaxe aisément réparables.

Le mot sur lequel le programme bloque est presque toujours souligné en rouge. L'erreur tient alors soit à ce mot soit à une syntaxe incomplète placée juste avant.

Souvent, il suffit de lire le message attentivement, car il est assez explicite. Lorsqu'il ne l'est pas, commencez par chercher le point virgule qui manque !


Voici quelques exemples de messages fréquemment rencontrés :

No matching DO/SELECT statement
On a mis un END; autrement que pour fermer un DO; ou un SELECT;
There was 1 unclosed DO block
On a oublié le END;
The variable m in the DROP, KEEP, or RENAME list has never been referenced
Soit il y a une faute de frappe dans le nom de la variable soit elle n'existe pas dans la table considérée soit il y a eu un rename plus haut dans l'étape data qui fait qu'elle a changé de nom.
Libname malib is not assigned
La librairie malib n'existe pas
Variable o is uninitialized.
Missing values were generated as a result of performing an operation on missing values.
Ces deux messages (en bleu) sont délivrés ensemble lorsqu'une variable est utilisée à laquelle aucune valeur n'est affectée. Là encore il faut penser à une éventuelle faute de frappe, par exemple o au lieu de 0.
You cannot open WORK.FINALE.DATA for output access with member-level control because WORK.FINALE.DATA is in use by you in resource environment ViewTable Window
La table table dans la librairie work est ouverte donc on ne peut pas l'utiliser dans le programme soumis.
Statement is not valid or it is used out of proper order
Soit l'instruction appelée n'existe pas ou est mal orthographiée, soit elle n'est pas appropriée dans le contexte donné, soit il manque un ; avant son appel.
Data set was not specified on the DATA statement
Le mot qui suit l'instruction output ne correspond à aucune des tables créées dans l'étape data.
Undeclared array referenced: x
La notation x(i) a été utilisée dans un cas autre que celui où x est un tableau (défini par l'instruction ARRAY). Soit x est une variable et alors on oublie cette notation, soit x est une fonction SAS et alors son résultat doit être récupéré dans une variable (on écrit a=x(0) ; et non x(0) ; )
Expecting a ;
A cet endroit il faut un point virgule.
Syntax error, expecting one of the following:...
Soit il manque un ; ou une parenthèse ou un caractère de ce style, soit les options ou instructions spécifiées ne sont pas utilisées à bon escient.
User does not have appropriate authorization level for file MALIB.COURS.DATA.
La librairie malib est assignée sur un répertoire sur lequel on n'a pas suffisamment de droits d'accès.