SQL/MX Programming Manual for C and COBOL (G06.24+, H06.03+)
Static Rowsets
HP NonStop SQL/MX Programming Manual for C and COBOL—523627-004
7-34
Inserting Rows From Rowset-Derived Tables
END-EXEC
EXEC SQL OPEN C1 END-EXEC
**** fetch rows from table ****
perform until sqlcode not = 0
EXEC SQL FETCH C1 INTO :hvaodpartnum, :rowid END-EXEC
**** Process the output rows in some way ****
end-perform
EXEC SQL CLOSE C1 END-EXEC
 ...
Inserting Rows From Rowset-Derived Tables
Use the INSERT statement and rowset-derived tables to insert multiple rows into a 
table from a query that retrieves from the derived table. 
Use this general syntax: 
For complete syntax, see the INSERT statement in the SQL/MX Reference Manual.
Example
This example inserts multiple rows (JOBCODE and JOBDESC columns) selected from 
a rowset-derived table:
EXEC SQL BEGIN DECLARE SECTION; 
 char SQLSTATE[6];
 ROWSET[5] unsigned NUMERIC (4) hva_jobcode; 
 ROWSET[5] VARCHAR hva_jobdesc[19]; 
 ...
EXEC SQL END DECLARE SECTION; 
...
/* Populate the rowset in some way. */ 
hva_jobcode[0] = 100; 
strcpy(hva_jobdesc[0],"PROJECT MANAGER"); 
hva_jobcode[1] = 200; 
strcpy(hva_jobdesc[1],"PROGRAM MANAGER"); 
hva_jobcode[2] = 300; 
strcpy(hva_jobdesc[2],"QUALITY SUPERVISOR"); 
hva_jobcode[3] = 400; 
strcpy(hva_jobdesc[3],"TECHNICAL OFFICER"); 
hva_jobcode[4] = 500; 
strcpy(hva_jobdesc[4],"EXECUTIVE OFFICER"); 
...
EXEC SQL INSERT INTO persnl.job 
 SELECT jobcode, jobdesc 
 FROM ROWSET(:hva_jobcode, :hva_jobdesc) 
INSERT INTO table-name (column [,column]...)
 SELECT column [,column]... 
 FROM ROWSET [rowset-size] (:array-name [,:array-name]...) 
 [AS] correlation (column [,column]...) 
C










