Here is another method that utilizes call vnext to generate a length statement. This example changes the length of the variable Sex from 1 to 2 in sashelp.class.
[pre]
data _null_;
if 0 then set sashelp.class;
length length_statement $ 32767 vname $32 vtype $1;
retain length_statement;
length_statement = 'length';
do while (vname ne 'length_statement');
call vnext(vname, vtype, vlength);
if vname = 'Sex' then vlength = 2;
if vname ne 'length_statement' then do;
var_length = catx(' ', vname, ifc(vtype='C', '$', ''), vlength);
length_statement = catx(' ', length_statement, var_length);
end;
end;
length_statement = cats(length_statement, ';');
call symputx("length_statement", length_statement);
run;
data class;
&length_statement
set sashelp.class;
run;
[/pre]