I am getting a weird message on a code that used to run fine until few days ago. Below if the code and error message. I would appreciate any help understanding the meaning of the error and possible solutions.
filename _fixed url "https://s3.amazonaws.com/cfpb-hmda-public/prod/apor/YieldTableAdjustable.txt";
PROC IMPORT OUT= work.adjustable
DATAFILE= _fixed
DBMS=dlm REPLACE;
DELIMITER='|';
GETNAMES=YES;
RUN;
NOTE: Unable to open parameter catalog: SASUSER.PARMS.PARMS.SLIST in update mode. Temporary parameter values will be saved to
WORK.PARMS.PARMS.SLIST.
ERROR: Physical file does not exist, https://s3.amazonaws.com/cfpb-hmda-public/prod/apor/YieldTableAdjustable.txt.
The NOTE that you see is often associated with opening a second SAS session and the first session has locked the SASUSER.Parms catalog which mostly holds SAS session parameters like window locations and such.
You might try ensuring all your SAS sessions are shut down, restart SAS and see if the code will run.
I was able to import that file using your code. It might have been temporarily unavailable on the website as busy, being created or some connection interruption.
The NOTE about the parameter catalog will always be issued when SASUSER is defined read-only (which is the case for University Edition).
Try it again; it might be that the file was not available at the moment. I could run your code from my University Edition without problems.
If the problem persists, one more thing that came to my mind: a firewall might, for some reason, consider the file "dangerous" and block the download, although the website as such is permitted.
The problem still happening; I am with you thinking that it a firewall restriction. Getting our SAS admin involved.
This first note is a BUG in the IMPORT procedure (or something that it calls under the hood). It does not impact how the proc runs so it shouldn't issue that note.
The second is also probably due to limitations of how PROC IMPORT works. Try first copying the text from the URL to a physical file and pass that file to PROC IMPORT.
filename _fixed url "https://s3.amazonaws.com/cfpb-hmda-public/prod/apor/YieldTableAdjustable.txt";
filename copy temp;
data _null_;
infile _fixed;
file copy;
input;
put _infile_;
run;
PROC IMPORT OUT= work.adjustable REPLACE
DATAFILE= copy DBMS=dlm
;
DELIMITER='|';
GETNAMES=YES;
RUN;
Or since it is just a text file skip the PROC IMPORT step altogether and just write your own data step to read from the fileref. This also has the advantage that you can control how all of the variables are defined.
data work.adjustable ;
infile _fixed dsd dlm='|' truncover firstobs=2;
input .... ;
run;
SAS Innovate 2025 is scheduled for May 6-9 in Orlando, FL. Sign up to be first to learn about the agenda and registration!
Learn how use the CAT functions in SAS to join values from multiple variables into a single value.
Find more tutorials on the SAS Users YouTube channel.
Ready to level-up your skills? Choose your own adventure.