If you forget to include the GUESSINGROWS=MAX option then PROC IMPORT will only check a few lines of the file before finalizing its guesses about how to define the variables.
When it sees an empty column it will define it as character variable with length of 1 (since that will use the least amount of storage).
The beginning of the CSV file I found on-line at this site
https://github.com/MaxineXiong/TSA_Claims_Data_Analysis/blob/master/TSAClaims2002_2017.csv
(which I assume is the same one) does not have any values for STATE until observation number 9,112.
That would explain why STATE was defined as only one character long.
Try starting over again and make sure to use GUESSINGROWS=MAX; statement in the PROC IMPORT step.
Or just use a simple data step to read the CSV file, such as the one that the %CSV2DS() macro would have generated:
data tsa;
infile 'C:\Downloads\TSAClaims2002_2017.csv' dlm=','
dsd truncover firstobs=2
;
length Claim_Number $13 Date_Received 8 Incident_Date 8 Airport_Code $3
Airport_Name $48 Claim_Type $39 Claim_Site $15 Item_Category $834
Close_Amount 8 Disposition $23 StateName $17 State $2 County $20
City $33
;
input Claim_Number -- City ;
run;
... View more