proc import out=
datafile=" "
DBMS=csv
out =
REPLACE;
run;
This basic syntax is resulting in the following error:
NOTE: Unable to open parameter catalog: SASUSER.PARMS.PARMS.SLIST in update mode. Temporary parameter values will be saved to
WORK.PARMS.PARMS.SLIST.
Does anyone know how to solve this?
Many thanks,
You can ignore it.
That is just a bug in the design/coding of PROC IMPORT. The procedure either does not properly test whether it is allowed to create such an object before trying to make it. Or it does test and writes that useless message when it cannot. But not being able to make that object does not prevent the procedure from working. So I have no idea why after all these years SAS has not removed that confusing message.
Are you seeing the following messages when starting SAS?
If so, it is likely that the previously launched SAS has locked some files in the SASUSER library and you do not have write permission.
The NOTE itself in PROC IMPORT is not a problem even if it appears, but if you are concerned about it, quit all SASs once and start SAS again, then run the program again and check if the message disappears.
Alternatively, you may have specified -RSASUSER as an option at startup. This is a mode that forces SASUSER to open in read-only mode.
This is set in the startup shortcut and configuration file sasv9.cfg.
You can ignore it.
That is just a bug in the design/coding of PROC IMPORT. The procedure either does not properly test whether it is allowed to create such an object before trying to make it. Or it does test and writes that useless message when it cannot. But not being able to make that object does not prevent the procedure from working. So I have no idea why after all these years SAS has not removed that confusing message.
Thanks for this clarification, I was stumped otherwise. As you mentioned the procedure completed regardless.
This note is the result of your SAS session having the SAS option RSASUSER turned on - your SASUSER library is set to read-only. This is typically a default option with recent SAS 9 installations. You can confirm this by running PROC OPTIONS and checking the setting in the SAS log.
Not related to the message but a suggestion:
Use the GUESSINGROWS=MAX; opton when using proc import with delimited files. The default behavior will only examine the first few rows of the data and may make guesses as to variable type or length poorly with variables that are infrequent or have differing lengths such as a "comment" field.
Better, use the documentation of the source file contents to write a data step to set properties correctly. Values like 20210512 will be read as numbers by proc import and not the date it likely is, account numbers like like "00031245" will be read as numeric by Proc Import and lose the leading zeroes. Which means you won't be able to tell the difference between accounts "00031245" and "31245" if both are in the data.
Hybrid approach: use proc import once to generate the data step to read the data, copy from the log, paste into the editor, clean up the code, check that the assigned informats make sense, add labels, and possibly search and replace the default variable names to something that makes more sense.
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.