BookmarkSubscribeRSS Feed
Ody
Quartz | Level 8 Ody
Quartz | Level 8

Hello all,

 

I'm uncertain what the below error message means when I run a proc contents against the following libname. Appreciate any insight. Thanks.

 

 


libname SetRef sasspds 'SetRef' server=xxx user=xxx password=xxx;

 

 

NOTE: Remote submit to EMSVR commencing.
560  PROC CONTENTS DATA= SetRef._all_ MEMTYPE=data 
561 OUT = Table1 NOPRINT;
562 RUN;

ERROR: Data set DPF component missing one or more partition file(s).
ERROR: Data set DPF component missing one or more partition file(s).
ERROR: The value SS# is not a valid SAS name.

NOTE: Statements not processed because of errors noted above.
NOTE: The data set WORK.Table1 has 685 observations and 41 variables.
NOTE: PROCEDURE CONTENTS used (Total process time):
real time 7.45 seconds
cpu time 0.03 seconds
NOTE: The SAS System stopped processing this step because of errors. NOTE: Remote submit to EMSVR complete.

  

7 REPLIES 7
ChrisNZ
Tourmaline | Level 20

One (or more) partition file in one of the SPDS datasets has disappeared.

SPDS can store its data in many different files. All of them must be here for the data set to be used.

burchill
Obsidian | Level 7

Thanks for the note about multiple partitions.  We are recovering from disk file issue and have a few of these errors appearing.  I know what the problem is but how do I fix the problem?    Will spdsclean re-index, the manual is not clear.

 

Is there an easy way in a domain to find out what tables are missing.  If I run contents data=_all_ it appears to be a small number comparted to all of our tables but it doesn't tell me which ones.

 

Thanks for any suggestions.

ChrisNZ
Tourmaline | Level 20

The partition files are named sequentially, just look at the missing numbers.

 

The right thing to do though is to restore all files as you need to have a set of files from the same snapshot.

If you mix file  #1 from the January version with file #2 from the February version, you'll end up with a real mess.

 

 

burchill
Obsidian | Level 7

Thank you for the quick response.  I should have been clearer - I realize the partitions are sequential.  The problem in the domain in question is an easy way to identify the tables.  We have over a thousand tables and looking at the errors returned from proc contents data=_all_ there are a small number (two or three) that are missing a partition.  The problem is proc contents doesn't return the file that has the missing partition, it just writes an error note, so I am left with searching manually.  I can search manually or write a little piece of code to cycle through the tables but I was hoping there was a faster way to identify the tables.  This would allow me to go back to our appropriate backup and pull out the pieces, or just delete and rebuild those few tables.  CB.

ChrisNZ
Tourmaline | Level 20

Like this?

 

data BADTABLES;
  set SASHELP.VTABLE;
  where LIBNAME='XXX';
  DSID=open(MEMNAME);
  if DSID then RC=close(DSID);
  else output;
run;
burchill
Obsidian | Level 7

Thanks again - tried with vtables - unfortunately the offending files were not read into vtables.

I tried with proc datasets contents nolist out=work.datalist ; Errors were displayed but not the table names, tables were not in the out data.

What I did in the end was run a proc datasets copy with obs=0 - this identified in the log file the particular data tables with missing partitions in the log file.  Once we found the table names correcting the problem from backup was quick and easy.

I made a slight change to your vtables code by cats the library name and member name.

 

options obs=0 ;

proc dataset library=projects noprint  memtype=data ;

    copy out=work ;

quit ;

options obs=max ;

 

ChrisNZ
Tourmaline | Level 20

Glad it worked in the end, not too sure why VTABLE couldn't see all tables.

SPDE really needs to improve on the usefulness if its error messages.

sas-innovate-2024.png

Today is the last day to save with the early bird rate! Register today for just $695 - $100 off the standard rate.

 

Plus, pre-conference courses and tutorials are filling up fast and are always a sellout. Register today to reserve your seat.

 

Register now!

How to Concatenate Values

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.

Click image to register for webinarClick image to register for webinar

Classroom Training Available!

Select SAS Training centers are offering in-person courses. View upcoming courses for:

View all other training opportunities.

Discussion stats
  • 7 replies
  • 2683 views
  • 2 likes
  • 3 in conversation