I have found some options running proc format.
Next was copied from an O/L documentation:
Syntax:
PROC FORMAT <option(s)>;
Relevant options to issues:
MAXLABLEN=number-of-characters
specifies the number of characters in the informatted or formatted value that you want to appear in the CNTLOUT= data set or in the output of the FMTLIB option. The FMTLIB option prints a maximum of 40 characters for the informatted or formatted value.
MAXSELEN=number-of-characters
specifies the number of characters in the start and end values that you want to appear in the CNTLOUT= data set or in the output of the FMTLIB option. The FMTLIB option prints a maximum of 16 characters for start and end values.
FMTLIB
prints information about all the informats and formats in the catalog that is specified in the LIBRARY= option. To get information only about specific informats or formats, subset the catalog using the SELECT or EXCLUDE statement.
Interaction:
The PAGE option invokes FMTLIB.
Tip:
If your output from FMTLIB is not formatted correctly, then try increasing the value of the LINESIZE= system option.
Tip:
If you use the SELECT or EXCLUDE statement and omit the FMTLIB and CNTLOUT= options, then the procedure invokes the FMTLIB option and you receive FMTLIB option output.
Relating to CASE issue - next is proposed code copied from @ScottBass example:
data cntlin;
set test (keep=long);
start=upcase(long); /* <<<< upcase function added */
end=start;
label=1;
fmtname="test";
type="I";
run; proc format cntlin=cntlin;
run;
data test2;
set test; long = upcase(long); /* <<< line added to enable upper case comparison */
test1=input(long,test.);
test2=input(substr(long,1,999),test.); * does not match, so char[1000] is signficant ;
test3=input(upcase(long),test.); * does not match, so case is significant ;
run;
... View more