The following error can occur when you create a compressed SAS data set from an empty hash object with the OUTPUT method:
ERROR: An error has occurred during instance method OM_OUTPUT(505) of "DATASTEP.HASH".
This is a subset of the problem reported in Problem Note 17149: "OM_OUTPUT(505) error occurs creating compressed data set with OUTPUT method."
The workaround is to specify COMPRESS=NO for the duration of the DATA step.
Product Family | Product | System | SAS Release | |
Reported | Fixed* | |||
SAS System | N/A | 64-bit Enabled AIX | 9.2 TS2M0 | 9.3 TS1M0 |
64-bit Enabled HP-UX | 9.2 TS2M0 | 9.3 TS1M0 | ||
64-bit Enabled Solaris | 9.2 TS2M0 | 9.3 TS1M0 | ||
HP-UX | 9.2 TS2M0 | 9.3 TS1M0 | ||
HP-UX IPF | 9.2 TS2M0 | 9.3 TS1M0 | ||
Linux | 9.2 TS2M0 | 9.3 TS1M0 | ||
Linux for x64 | 9.2 TS2M0 | 9.3 TS1M0 | ||
Linux on Itanium | 9.2 TS2M0 | 9.3 TS1M0 | ||
OpenVMS on HP Integrity | 9.2 TS2M0 | 9.3 TS1M0 | ||
Solaris for x64 | 9.2 TS2M0 | 9.3 TS1M0 | ||
Tru64 UNIX | 9.2 TS2M0 | 9.3 TS1M0 |
%*-- create empty / non-empty test data. ;
data WORK.hash1;
AVar1 = 42;
run;
data WORK.hash0;
set WORK.hash1(obs=0);
run;
%*-- fix it... set to NO, break it with YES ;
option compress=YES;
%*-- do something. ;
data _null_;
set WORK.hash1 end=last;
call missing (AVar1);
if _n_ eq 1 then do;
dcl hash hDUMMY (dataset: 'WORK.hash0');
hDUMMY.DefineKey ('AVar1');
hDUMMY.DefineData ('AVar1');
hDUMMY.DefineDone();
end;
if last then do;
put 'NOTE: ***** PUTTING *****';
hDUMMY.output (dataset: 'WORK.testSet');
end;
run;
2 3 %*-- create empty / non-empty test data. ; 4 data WORK.hash1; 5 AVar1 = 42; 6 run; NOTE: The data set WORK.HASH1 has 1 observations and 1 variables. NOTE: DATA statement used (Total process time): real time 0.05 seconds cpu time 0.01 seconds 7 data WORK.hash0; 8 set WORK.hash1(obs=0); 9 run; NOTE: There were 0 observations read from the data set WORK.HASH1. NOTE: The data set WORK.HASH0 has 0 observations and 1 variables. NOTE: DATA statement used (Total process time): real time 0.01 seconds cpu time 0.00 seconds 10 11 %*-- fix it... set to NO, break it with YES ; 12 option compress=NO; 13 14 %*-- do something. ; 15 data _null_; 16 set WORK.hash1 end=last; 17 call missing (AVar1); 18 if _n_ eq 1 then do; 19 dcl hash hDUMMY (dataset: 'WORK.hash0'); 20 hDUMMY.DefineKey ('AVar1'); 21 hDUMMY.DefineData ('AVar1'); 22 hDUMMY.DefineDone(); 23 end; 24 if last then do; 25 put 'NOTE: ***** PUTTING *****'; 26 hDUMMY.output (dataset: 'WORK.testSet'); 27 end; 28 run; NOTE: There were 0 observations read from the data set WORK.HASH0. NOTE: ***** PUTTING ***** NOTE: The data set WORK.TESTSET has 0 observations and 1 variables. NOTE: There were 1 observations read from the data set WORK.HASH1. NOTE: DATA statement used (Total process time): real time 0.08 seconds cpu time 0.02 seconds 29 /* t334393.sas */ 30 31 %*-- create empty / non-empty test data. ; 32 data WORK.hash1; 33 AVar1 = 42; 34 run; NOTE: The data set WORK.HASH1 has 1 observations and 1 variables. NOTE: DATA statement used (Total process time): real time 0.02 seconds cpu time 0.00 seconds 35 data WORK.hash0; 36 set WORK.hash1(obs=0); 37 run; NOTE: There were 0 observations read from the data set WORK.HASH1. NOTE: The data set WORK.HASH0 has 0 observations and 1 variables. NOTE: DATA statement used (Total process time): real time 0.02 seconds cpu time 0.02 seconds 38 39 %*-- fix it... set to NO, break it with YES ; 40 option compress=yes; 41 42 %*-- do something. ; 43 data _null_; 44 set WORK.hash1 end=last; 45 call missing (AVar1); 46 if _n_ eq 1 then do; 47 dcl hash hDUMMY (dataset: 'WORK.hash0'); 48 hDUMMY.DefineKey ('AVar1'); 49 hDUMMY.DefineData ('AVar1'); 50 hDUMMY.DefineDone(); 51 end; 52 if last then do; 53 put 'NOTE: ***** PUTTING *****'; 54 hDUMMY.output (dataset: 'WORK.testSet'); 55 end; 56 run; NOTE: There were 0 observations read from the data set WORK.HASH0. NOTE: ***** PUTTING ***** NOTE: Compression was disabled for data set WORK.TESTSET because compression overhead would increase the size of the data set. NOTE: The data set WORK.TESTSET has 0 observations and 1 variables. ERROR: An error has occurred during instance method OM_OUTPUT(505) of "DATASTEP.HASH". NOTE: The SAS System stopped processing this step because of errors. NOTE: There were 1 observations read from the data set WORK.HASH1. NOTE: DATA statement used (Total process time): real time 0.09 seconds cpu time 0.00 seconds
Type: | Problem Note |
Priority: | medium |
Topic: | SAS Reference ==> Component Objects ==> hash object ==> OUTPUT |
Date Modified: | 2011-06-06 14:12:50 |
Date Created: | 2010-02-25 17:36:32 |