Because COBOL creates an extra level when including externally described data, the OCCURS clause must be placed on the preceding 04 level. The structure cannot contain any additional declares at the 05 level.
If the file contains fields that are generated as FILLER, the structure cannot be used as a host structure array.
For device files, if INDARA was not specified and the file contains indicators, the declaration cannot be used as a host structure array. The indicator area is included in the generated structure and causes the storage for records to not be contiguous.
For example, the following shows how to use COPY–DDS to generate a host structure array and fetch 10 rows into the host structure array:
01 DEPT. 04 DEPT-ARRAY OCCURS 10 TIMES. COPY DDS-ALL-FORMATS OF DEPARTMENT. ... EXEC SQL DECLARE C1 CURSOR FOR SELECT * FROM CORPDATA.DEPARTMENT END EXEC. EXEC SQL OPEN C1 END-EXEC. EXEC SQL FETCH C1 FOR 10 ROWS INTO :DEPARTMENT END-EXEC.
Although GRAPHIC and VARGRAPHIC are mapped to character variables in COBOL for iSeries™, SQL considers these GRAPHIC and VARGRAPHIC variables. If the GRAPHIC or VARGRAPHIC column has a UCS-2 CCSID, the generated host variable will have the UCS-2 CCSID assigned to it. If the GRAPHIC or VARGRAPHIC column has a UTF-16 CCSID, the generated host variable will have the UTF-16 CCSID assigned to it.