I've been developing a piece of syntax for a week or so, and the formatting has been working fine. Today, I'm suddenly getting errors such as: "ERROR: The format FMT_1_43F was not found or could not be loaded."
The formats file is in the "base" directory, and according to the log, is being loaded correctly:
LIBNAME base "Z:\Data sources\MVC Analytic Table Data 10.14.21";
NOTE: Libref BASE was successfully assigned as follows:
Engine: V9
Physical Name: Z:\Data sources\MVC Analytic Table Data 10.14.21
proc format library=base.formats; run;
NOTE: PROCEDURE FORMAT used (Total process time):
real time 0.05 seconds
cpu time 0.03 seconds
I opened the formats file and all of the individual formats appear to be set up correctly, so I don't think the file has been corrupted.
This seems more like a software glitch, so I shut down SAS and restarted it, but that didn't make any difference. I would also like to reboot the computer, but I'm remotely logged into a virtual machine so I don't have the ability to do that.
APPEND must be used like other options with an equal sign:
options append=(fmtsearch=base);
Can you please show how you created the permanent formats or trying to access them?
@Wolverine wrote:
I've been developing a piece of syntax for a week or so, and the formatting has been working fine. Today, I'm suddenly getting errors such as: "ERROR: The format FMT_1_43F was not found or could not be loaded."
The formats file is in the "base" directory, and according to the log, is being loaded correctly:
LIBNAME base "Z:\Data sources\MVC Analytic Table Data 10.14.21"; NOTE: Libref BASE was successfully assigned as follows: Engine: V9 Physical Name: Z:\Data sources\MVC Analytic Table Data 10.14.21 proc format library=base.formats; run; NOTE: PROCEDURE FORMAT used (Total process time): real time 0.05 seconds cpu time 0.03 seconds
I opened the formats file and all of the individual formats appear to be set up correctly, so I don't think the file has been corrupted.
This seems more like a software glitch, so I shut down SAS and restarted it, but that didn't make any difference. I would also like to reboot the computer, but I'm remotely logged into a virtual machine so I don't have the ability to do that.
Is the Base library in the FMTSEARCH path?
That option tells SAS where to look for formats that do not appear in the Work or the default format libraries supplied by SAS.
You can check with:
proc options option=fmtsearch; run;
If your log does not show the Base library then that is the issue. This should add the library to the path:
options append(fmtsearch=base);
If code was working previously then that may mean either an admin changed something or you ran some code that removed the library from the Fmtsearch and kept that setting somehow.
It doesn't look like the Base library is there anymore:
proc options option=fmtsearch; run;
SAS (r) Proprietary Software Release 9.4 TS1M6
FMTSEARCH=(WORK LIBRARY)
Specifies the order in which format catalogs are searched.
NOTE: PROCEDURE OPTIONS used (Total process time):
real time 0.03 seconds
cpu time 0.01 seconds
But when I tried to use the code you suggested to add it back in, I got an error. I tried it another way, but that didn't work either.
194 options append(fmtsearch=base);
----------------------
13
ERROR 13-12: Unrecognized SAS option name APPEND(FMTSEARCH=BASE).
195 proc options append(fmtsearch=base);
------
22
76
ERROR 22-322: Syntax error, expecting one of the following: ;, ADB, APF, DB2, DDB, DEFINE, EXPAND, GETRESTRICT, GROUP, HELP, HEXVALUE,
HOST, IDM, IMS, ISP, LISTGROUPS, LISTINSERTAPPEND, LISTOPTSAVE, LISTRESTRICT, LOGNUMBERFORMAT, LONG, NOEXPAND,
NOLOGNUMBERFORMAT, OPTION, PORTABLE, PWDBLOTOFF, RESTRICT, SHORT, SHOWCHAINS, VALUE.
ERROR 76-322: Syntax error, statement will be ignored.
196 run;
APPEND must be used like other options with an equal sign:
options append=(fmtsearch=base);
Are you ready for the spotlight? We're accepting content ideas for SAS Innovate 2025 to be held May 6-9 in Orlando, FL. The call is open until September 25. Read more here about why you should contribute and what is in it for you!
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.