DS2 - Variables locales et globales

Cet article en deux mots :

Comprendre la portée des variables est crucial pour tout développeur SAS DS2. Entre déclarations explicites dans les méthodes et création automatique de variables globales, la structure de votre code impacte directement vos tables finales. Découvrez comment isoler vos données locales ou gérer vos variables globales avec précision à travers des exemples concrets et des bonnes pratiques de programmation.

Dans le langage SAS DS2Langage de programmation orienté objet de SAS, compatible avec le typage SQL, permettant un traitement parallèle sur plusieurs threads et une exécution directe dans les bases de données ou en CAS., les variablesColonnes d'une table SAS contenant des données spécifiques (numériques ou caractères). Elles possèdent des attributs comme le nom, le type, la longueur, l'étiquette et le format d'affichage. sont toujours globales sauf si elle sont déclarées dans une méthode. Exemple :
1
2
3
4
5
6
7
8
9
10
11
12
13
proc ds2;
data _null_ ;
dcl int a;
dcl int b;

method init();
end;
method run();
dcl int c;
dcl int d;
end;
enddata;
run;
Les variablesColonnes d'une table SAS contenant des données spécifiques (numériques ou caractères). Elles possèdent des attributs comme le nom, le type, la longueur, l'étiquette et le format d'affichage. a et b sont globales car définit avant le init() ( et hors méthode) Les variable c et d sont locales à la méthode run() Pour illustrer le fonctionnement des variablesColonnes d'une table SAS contenant des données spécifiques (numériques ou caractères). Elles possèdent des attributs comme le nom, le type, la longueur, l'étiquette et le format d'affichage. globales et locales, prenons un autre exemple ci-dessous :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
proc ds2;
data exempleLocalGlobal;

dcl bigint maVar1;
dcl double maVar2;

method init();
dcl date maVar3;
dcl float maVar4;
maNewVar=34;
end;
enddata;
run;
quit;
Dans cette exemple, le dataset exempleLocalGlobal contient, après exécution, 3 variablesColonnes d'une table SAS contenant des données spécifiques (numériques ou caractères). Elles possèdent des attributs comme le nom, le type, la longueur, l'étiquette et le format d'affichage.. Les variablesColonnes d'une table SAS contenant des données spécifiques (numériques ou caractères). Elles possèdent des attributs comme le nom, le type, la longueur, l'étiquette et le format d'affichage. globales maVar1 et maVar2  (car justement elles sont globales) et la variable maNewVar. maNewVar est en effet automatiquement créée comme variable globale : proc-ds2-newvar-globale   proc-ds2-newvar-globale-proc-contents  

Nicolas Housset

Passionné d'informatique, je suis Consultant et expert technique SAS VIYA, également co-fondateur de la société Flexcelite. Spécialisé dans les technologies SAS (Viya, 9.4) et les infrastructures associées (Linux, Hadoop, Azure), ce blog est mon espace pour partager mes mémos techniques et retours d'expérience.