The second data step is referencing variables that your first data step that reads the CSV file is not creating.
Perhaps your real problem lies there and not in the reading of the text file.
Your import step looks like it was either generated by PROC IMPORT or copied from the code that PROC IMPORT generates. The code that PROC IMPORT generates generally works, but it is not really very good code to use for modeling your own data step. You do not need to specify either an INFORMAT or a FORMAT for character variable. Just define the length that you want them to have. In general you only need INFORMAT for Date/Time variables or numeric variables that include commas and dollar signs in the text file. You only need to attach FORMATs to Date/TIme varaibles. You can attach formats to numeric variable if you want to make the values display better for you. For example if your values are large you might want to use COMMA (or DOLLAR) format so that it will be easier to users to read the results when SAS prints the values.
data CHARGE_DETAIL_&billing_month;
infile "&path\MCB_Raw\charge_detail_&billing_month..csv"
DSD DLM=',' TRUNCOVER lrecl=32767 firstobs=2
;
length c_c $21 cust_name $35 ;
input c_c -- cust_name ;
run;
... View more