BookmarkSubscribeRSS Feed
Paige
Quartz | Level 8
I have no idea what that means. I am performing a loop which reads portions of data from a SAS dataset, using the command

use _inline_defect_stat1_ where(lot_id=thislot & wafer_id=thiswfr);

The specific command that SAS objects to appears to be:

read all var{wafer_id} into i_wfr;

Now, the dataset itself isn't changing while I am doing this looping in IML. The values of thislot and thiswfr change during the loop, but are fixed at the time the above USE and READ command is executed.

So I am mystified by the WARNING in the SAS Log:

WARNING: Record no longer satisfies where statement.

statement : READ at line 737 column 17

Despite it being a WARNING, this causes the loop to stop executing, and large parts of my dataset aren't read at all via the looping.

Does anyone have any idea what is going on and how to fix it?
6 REPLIES 6
Rick_SAS
SAS Super FREQ
I've never seen this warning before, but you say that
"the values of thislot and thiswfr change during the loop"
which makes me think that is the cause.

Can you make it happen with SASHELP.class by modifying the following code?

proc iml;
gender = {F M};
cutoff = {60 62};
do j = 1 to ncol(gender);
s = gender;
c = cutoff;
use sashelp.class where(sex=s & height read all var {Height} into h;
print h;
end;
close sashelp.class;
Paige
Quartz | Level 8
Perhaps I should have been more clear.

The values of thislot and thiswfr change once in the loop, before the READ statement. At the time the USE and READ statements execute, the values of thislot and thiswfr should be fixed.

Outline of code

proc iml;
do thislot=1 to 10;
do thiswfr=1 to 24;
use _inline_defect_stat1_ where(lot_id=thislot & wafer_id=thiswfr);
read all var{wafer_id} into i_wfr;
... do lots of IML things that do not change thislot or thiswfr ...
end;
end;
quit;

Your sample code doesn't cause this problem.
Rick_SAS
SAS Super FREQ
Yes, I know that my code doesn't have this problem, but my code DOES have the same form as your code: the WHERE condition is changing in a loop. I can't reproduce your problem, so I was hoping that you might be able to get it to happen with a data set that we both have access to.
Hutch_sas
SAS Employee
Could you do a "show contents" to see what variables are in the data set?
Paige
Quartz | Level 8
I have examined the dataset using the SAS viewtable command, and I have examined the values being read using SHOW CONTENTS or PRINT statements, and I don't see anything that would appear to be unusual or could possibly cause this WARNING (which really should be an ERROR) message. I should point out that numerous iterations of the looping work properly (as confirmed by SHOW CONTENTS) and then one particular iteration causes this WARNING, and no more looping happens, IML just issues the WARNING and then exits. But I just don't see anything unusual about this particular iteration.

I admit since I don't fully understand the WARNING, I don't really know what to look for. This is a pretty standard data set (in my opinion) where I have multiple LOT_ID and multiple WAFER_ID, plus other variables, and I'm just looping through it in IML, using the WHERE clause to select the portion I need.

Just to clarify for Rick@SAS, I did run your code on my machine, and I did not get the WARNING message. Message was edited by: Paige
Hutch_sas
SAS Employee
I suggest that you contact SAS Technical Support with this problem. They may have seen it before, and if not you can send them your data set, Then it should be possible to reproduce the problem and diagnose the cause.

sas-innovate-2024.png

Join us for SAS Innovate April 16-19 at the Aria in Las Vegas. Bring the team and save big with our group pricing for a limited time only.

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

 

Register now!

Multiple Linear Regression in SAS

Learn how to run multiple linear regression models with and without interactions, presented by SAS user Alex Chaplin.

Find more tutorials on the SAS Users YouTube channel.

From The DO Loop
Want more? Visit our blog for more articles like these.
Discussion stats
  • 6 replies
  • 1256 views
  • 0 likes
  • 3 in conversation