Hi, As asked in my post yesterday, I would like to duplicate each row of a big table A in a table B before reducing B in a table C, and it's technically impossible currently to duplicate, too big volume of data. But I noticed that if I split A into parts (1000 rows per part), then I apply the duplication on a part, and then reduce the part before duplicating the next part, it can work. What I want to do: 1/ Splitting A into A1, A2,...An 2/ Duplicate A1 into B1. Reduce B1 into C1. Delete B1 3/ Duplicate A2 into B2. Reduce B2 into C2. Delete B2 ... n+1/ Duplicate An into Bn. Reduce Bn into Cn. Delete Bn n+2/ Make an union of all Ci tables into C But technically I don't arrive to split into 1000 rows tables and applying my duplication macro, and my reduction macro. Let's say that: - my duplication macro is called "duplication(i)" use Ai and output my table Bi, - my reducing macro is called "reduce(i)", use Bi and output Ci %macro getpartextraction(part= 0);
PROC SQL;
CREATE TABLE A&part AS
SELECT * FROM A
WHERE ID_ROW >= (&part-1)*1000+1 AND ID_ROW <= MIN(MAX(ID_ROW), &part*1000)
ORDER BY ID_ROW;
%mend;
data _null_;
set A;
do k = 1 to (MAX(ID_ROW)/1000);
call execute('%getpartextraction('||k||')'); call execute('%duplication('||k||')'); call execute('%reduce('||k||')');
end;
run;
For the moment I try to split A to Ai but there is an error "an error occured executing the workspace "Duplication process". The server is disconnected. " And "Duplication process" is the name of my programm. I need to rerun everything after this error. Do you know where is the problem? Thanks Edit: ID_ROW is the number of the row in the big table A
... View more