Applies to: | Hash object |
data testdup;
length key data 8;
input key data;
datalines;
1 10
2 11
1 15
3 20
2 16
2 9
3 100
5 5
1 5
4 6
5 99
;
data _null_;
length r 8;
dcl hash h(dataset:'testdup', multidata: 'y', ordered: 'y');
h.definekey('key');
h.definedata('key', 'data');
h.definedone();
call missing (key, data);
do key = 1 to 5;
rc = h.find();
if (rc = 0) then do;
put key= data=;
h.has_next(result: r);
do while(r ne 0);
rc = h.find_next();
put 'dup ' key= data;
data = data + 300;
rc = h.replacedup();
h.has_next(result: r);
end;
end;
end;
put 'iterating...';
dcl hiter i('h');
rc = i.first();
do while (rc = 0);
put key= data=;
rc = i.next();
end;
run;
key=1 data=10 dup key=1 15 dup key=1 5 key=2 data=11 dup key=2 16 dup key=2 9 key=3 data=20 dup key=3 100 key=4 data=6 key=5 data=5 dup key=5 99 iterating... key=1 data=10 key=1 data=315 key=1 data=305 key=2 data=11 key=2 data=316 key=2 data=309 key=3 data=20 key=3 data=400 key=4 data=6 key=5 data=5 key=5 data=399