Figure 3 – RPG variable scoping
PSubProc1 B EXPORT D PI D OutArray ds qualified dim(1000) D customer 25A D region 25A /free EXEC SQL DECLARE c1 CURSOR FOR SELECT customer, region FROM cust_dim; EXEC SQL OPEN c1; EXEC SQL FETCH NEXT FROM c1 FOR 100 ROWS INTO :OutArray; EXEC SQL CLOSE c1; return; /end-free P E PSubProc2 B EXPORT D PI D outArray ds qualified dim(1000) D part 55A D mfgr 25A D brand 10A /free EXEC SQL DECLARE c2 CURSOR FOR SELECT part, mfgr, brand FROM part_dim; EXEC SQL OPEN c2; EXEC SQL FETCH NEXT FROM c2 FOR 200 ROWS INTO :OutArray; EXEC SQL CLOSE c2; return; /end-free P E