I've been getting a strange error when trying to pull in some variables while referencing a concatenated library. I'll try to provide a working example in describing the issue. My office has some standard libraries where we set, e.g., libname sqllib1 [library info]
libname sqllib2 [library info]
libname sqllib (sqllib1 sqllib2) Later in our code, we simply reference sqllib. Sometimes, though, I'll get the following error when using proc sql to create a table from sqllib: ERROR: SQL generation can not be performed on a concatenated library. In-database processing will be skipped. In the most recent example, it occurs when I try to bring in put(district, z2.) instead of district What's strange is that, despite the error, it will still create the table I need. I can 'fix' this error by simply using sqllib1. So if I do proc sql; create table foo1 as select put(district, z2.) from sqllib.data; quit;
proc sql; create table foo2 as select put(district, z2.) from sqllib1.data; quit; foo1 and foo2 both get created and are identical, but foo1 will give me this error. So what's going on here? If it's actually an error, shouldn't SAS not create the foo1 table? "data" isn't found in sqllib2 either, so SAS isn't getting 'confused' about where to pull things from. It's an easy issue to circumvent, but the error itself has me mystified. If I need to provide more information please let me know!
... View more