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