Chapter Contents
Chapter Contents
Previous
Previous
Next
Next
Using SAS/IML Software to Generate IML Statements

Executing Any Command in an EXECUTE Call

The EXECUTE command executes the statements contained in the arguments using the same facilities as a sequence of CALL PUSH, PAUSE, and RESUME statements. The statements use the same symbol environment as that of the subroutine that calls them. For example, consider the following subroutine:

     proc iml;
     start exectest;
     /*    IML STATEMENTS  */
        call execute ("xnum = {1 2 3, 4 5 6, 7 8 0};");
        call execute ("create dsnum1 from xnum;");
        call execute ("append from xnum;");
        call execute ("print 'DSNUM should have 3 obs and 3 var:';");
        call execute ("list all;");
     /*    global (options) statement  */
        call execute ("options linesize=68;");
        call execute ("print 'Linesize should be 68';");
     finish;
     run exectest;
The output generated from EXECTEST is exactly the same as if you had entered the statements one at a time:
                  DSNUM should have 3 obs and 3 var:

                  OBS      COL1      COL2      COL3
                 ------ --------- --------- ---------
                      1    1.0000    2.0000    3.0000
                      2    4.0000    5.0000    6.0000
                      3    7.0000    8.0000         0

                         Linesize should be 68
CALL EXECUTE could almost be programmed in IML as shown here; the difference between this and the built-in command is that the following subroutine would not necessarily have access to the same symbols as the calling environment:
   start execute(command1,...);
      call push(command1,...," resume;");
      pause;
   finish;

Chapter Contents
Chapter Contents
Previous
Previous
Next
Next
Top
Top

Copyright © 1999 by SAS Institute Inc., Cary, NC, USA. All rights reserved.