jeudi 2 décembre 2010

Créer un ensemble de macro variables avec SQL: sysmaxlong

La variable macro & sysmaxlong permet de créer l'élément  supérieure de la  macro, c'est à dire que l'élément n-ième est créé, correspondant au nombre maximum de lignes dans la table.
 
   proc sql noprint;
      select distinct ville
             into :ville-ville&sysmaxlong.
        from monfichier;
          %let n_ville = &sqlobs;
     quit;

     %do i = 1 %to &n_ville;
        &&&ville&i;
     %end;

Lire un champ de plus de 1024 chr


Dans SAS la limite maximum par défaut d'un champ caractère est de 1024,
Pour lire un champ plus long depuis une base de donnée il faut employer l’option DBMAX_TEXT=4096  maximum 32767



LIBNAME Malib ODBC  DATASRC=MaSource  SCHEMA=dbo  USER=dwh001  PASSWORD= xxxx DBMAX_TEXT=3264 ;