| SAS-Links: | 
| meld1.sas | 
| if mod(_N_,10000)=0 then put "Schritt xyz: " _N_ commax15.; | 
Falls man weiß, wieviele Datensätze bearbeitet werden (diese Information erhält man etwa mit nobs=ende hinter der Datenquelle (set blablubb nobs=ende)), kann man diese Information mit ausgeben:
| meld2.sas | 
| if mod(_N_,10000)=0 then put "Schritt xyz: " _N_ commax15. " von " ende commax15.; | 
| loesch1.sas | 
| proc sql;
    drop table LIBRARY.DATASET;
quit; | 
| loesch2.sas | 
| proc datasets lib=LIBRARY nolist;
    delete DATASET;
quit; | 
| loesch3.sas | 
| %include '...\pfad\pfad\pfad\m_loesch_ds.sas'; %m_loesch_ds(LIBRARY, DATASET); | 
| m_loesch_ds.sas | 
| %macro m_loesch_ds(lbname, dsname);
    %if %sysfunc(exist(&lbname..&dsname.)) %then
        %do;
            proc datasets lib=&lbname. nolist;
                delete &dsname.;
            quit;
            %put Der Datensatz "&dsname." wurde gelöscht.;
        %end;
    %else
        %put Der Datensatz "&dsname." existiert nicht.;
%mend; | 
| auskoppeln.sas | 
| options missing=" ";
data _null_;
    file "...\pfad\pfad\pfad\meine_text_datei.txt" ls = 1000;
    set MEINELIB.MEINDATASET;
    put variable1 '09'x
        variable2 '09'x
        variable3
        ;
run;
options missing="."; | 
| einlesen.sas | 
| data NEUESDATASET;
    format var1      15.
           var2    $254.
           var3    $500.
           var4       1.
           ;
    informat var1      15.
             var2    $254.
             var3    $500.
             var4       1.
             ;
    infile "...\pfad\pfad\pfad\meine_text_datei.txt"
           linesize = 1000
           dlm      = '09'x
           dsd
           missover
           ;
    input var1
          var2      $
          var3      $
          var4
          ;
run;
 | 
| mkdir.sas | 
| options noxwait; x "mkdir ...\pfad\pfad\pfad"; options xwait; | 
| oracle.sas | 
| libname x oracle path=DBNAME user=USERNAME preserve_tab_names=no; | 
| dialog.sas | 
| filename sascbtbl 'pfad/zu/der/Datei/winapi.txt';
data _null_;
       length rc
           hWnd
           style 8
           text
           caption $200
           ;
    hWnd    = 0;
    text    = "ANZUZEIGENDER TEXT";
    caption = 'ANZUZEIGENDER TITEL';
    style   = 0*4096 + 0*256 + 2*16 + 0*1;
        /* -------------------------------------
              0020 = Question mark icon + OK
           -------------------------------------     */
        /* -------------------------------------
         Buttons: OK                 =  0
                  OK/Cancel          =  1
                  Abort/Retry/Ignore =  2
                  Yes/No/Cancel      =  3
                  Yes/No             =  4
                  Retry/Cancel       =  5
         Icons:   Stop Sign          = 10
                  Question Mark      = 20
                  Exclamation Mark   = 30
                  Informing Sign     = 40
         Return:  Error state        =  0
                  OK                 =  1
                  Cancel             =  2
                  Abort              =  3
                  Retry              =  4
                  Ignore             =  5
                  Yes                =  6
                  No                 =  7
         -------------------------------------     */
    rc = modulen('*e', 'MessageBoxA', hWnd, text, caption, style);
    if (rc=0) then put 'ERROR: Cannot create message box';
    put rc=;
run; | 
Die oben angezogene Datei pfad/zu/der/Datei/winapi.txt sieht so aus:
| winapi.txt | 
| routine MessageBoxA module=USER32 returns=SHORT stackpop=CALLED minarg=4 maxarg=4 ; arg 1 input format=pib4. byvalue; arg 2 input format=$cstr200.; arg 3 input format=$cstr200.; arg 4 input format=pib4. byvalue; | 
| perl1.sas | 
| x "perl \\pfad\zum\perlskript.pl PARAMETER1 PARAMETER2 ..."; | 
Hierbei muss das Perlprogramm das Ergebnis nach STDOUT schreiben.
| perl2.sas | 
| filename rb pipe "perl \\pfad\zum\perlskript.pl PARAMETER1 ..." console=min;
data RUECKLES;
    format var1      15.
           var2    $254.
           var3    $500.
           ;
    informat var1      15.
             var2    $254.
             var3    $500.
             ;
    infile rb
           linesize = 1000
           dlm      = '09'x
           dsd
           missover
           ;
    input var1
          var2      $
          var3      $
          ;
run; |