Problem Note 38863: OM_OUTPUT(505) error occurs creating empty compressed data set with OUTPUT method
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.
Operating System and Release Information
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 |
*
For software releases that are not yet generally available, the Fixed
Release is the software release in which the problem is planned to be
fixed.
This sample SAS code demonstrates the problem.
%*-- 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 |