SAS Component Language Dictionary |
Category: | Declarative Statement |
Comparisons: | SAS Statement with limitations in SCL |
Syntax | |
Details | |
Example | |
See Also |
Syntax |
LENGTH<variable-list><DEFAULT=n>; |
is one or more variables, specified as variable-1 <. . . variable-n> <$> length, where
designates that the preceding variable or variables are character type.
is the length of the preceding variable or variables. Length can range from 1 to 32,767 for character variables. All numeric variables have a length of 8. If you specify a different length for a numeric variable, SCL still reserves 8 bytes for it.
is the maximum length of character variables that are not defined by a LENGTH statement. If this option is not used, the default length for character variables is 200.
Details |
In SCL, LENGTH is a declarative statement and can be used only to set the lengths of nonwindow variables. If you attempt to specify a length for a window variable, a compile error occurs.
You typically place LENGTH statements at the beginning of a program, before the first labeled section. A compiler error occurs if you attempt to place a LENGTH statement within a DO group or within a conditional clause.
You can use the LENGTH statement to reduce the amount of memory required for storing character-type nonwindow variables. For example, if your program assigns only single-character values to the variable CODE, and if the default length of character variables is 200, then you can save 199 bytes of storage space by defining the length of the variable explicitly in the SCL program. To do so, use a statement like the following:
length code $ 1;
For details about the LENGTH statement in the Base SAS language, see SAS Language Reference: Dictionary.
Example |
Set the maximum length of all character variables that are not defined by a LENGTH statement to 150:
length default=150; length a $ 8; INIT: b=''; max_a=mlength(a); max_b=mlength(b); put max_a= max_b=; return;
The output is:
max_a=8 max_b=150
See Also |
Copyright © 2009 by SAS Institute Inc., Cary, NC, USA. All rights reserved.