Multi Row Fetch, INSERT and Get Diagnostics How To Put It Into Code
Multi Row Fetch, INSERT and Get Diagnostics How To Put It Into Code
Important Disclaimer
THE INFORMATION CONTAINED IN THIS PRESENTATION IS PROVIDED
FOR INFORMATIONAL PURPOSES ONLY.
WHILE EFFORTS WERE MADE TO VERIFY THE COMPLETENESS AND
ACCURACY OF THE INFORMATION CONTAINED IN THIS PRESENTATION, IT
IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED.
IN ADDITION, THIS INFORMATION IS BASED ON IBM’S CURRENT
PRODUCT PLANS AND STRATEGY, WHICH ARE SUBJECT TO CHANGE BY
IBM WITHOUT NOTICE.
IBM SHALL NOT BE RESPONSIBLE FOR ANY DAMAGES ARISING OUT OF
THE USE OF, OR OTHERWISE RELATED TO, THIS PRESENTATION OR ANY
OTHER DOCUMENTATION.
NOTHING CONTAINED IN THIS PRESENTATION IS INTENDED TO, OR
SHALL HAVE THE EFFECT OF:
• CREATING ANY WARRANTY OR REPRESENTATION FROM IBM (OR ITS
AFFILIATES OR ITS OR THEIR SUPPLIERS AND/OR LICENSORS); OR
• ALTERING THE TERMS AND CONDITIONS OF THE APPLICABLE
LICENSE AGREEMENT GOVERNING THE USE OF IBM SOFTWARE.
Agenda
2 Errors Encountered
But Why?
Varchar Definition
IF W-ROW-COUNT = 10
MOVE -10 TO W-DBNAME-LEN
END-IF.
Procedure Division
DISPLAY W150-ERR-MSG-1.
DISPLAY W150-ERR-MSG-2.
DISPLAY W150-ERR-MSG-3.
DISPLAY W150-ERR-MSG-4.
MOVE 12 TO RETURN-CODE.
GOBACK.
This message now tells what the real problem is but the 10 Inserted rows have
been rolled back.
Multi-row FETCH
Returns multiple rows on one API crossing
"wide" cursor with locks on multiple rows
Supports scrollable and non-scrollable, static and
dynamic SQL
Significant performance boost
DSNTEP4 = DSNTEP2 + MRF
DECLARE C1 CURSOR
WITH ROWSET POSITIONING
FOR SELECT COL1, COL2 FROM T1;
OPEN C1;
FETCH FROM C1
FOR :hv ROWS INTO :ARRAY1, :ARRAY2;
Procedure Division
EXEC SQL
DECLARE C1 SCROLL CURSOR FOR
SELECT PARTITION, TSNAME, DBNAME, IXNAME, IXCREATOR
Declare the cursor using single row
FROM SYSTABLEPART
END-EXEC.
EXEC SQL
OPEN C1 Open the cursor
END-EXEC.
PERFORM B000-FETCH
UNTIL W-SQLCODE NOT = 0.
B000-FETCH SECTION.
EXEC SQL
FETCH FROM C1
INTO :W-PARTITION ,
Fetch one row at a time
:W-TSNAME ,
:W-DBNAME ,
:W-IXNAME ,
:W-IXCREATOR
END-EXEC.
Any Questions
Please contact
Paul Fletcher
FLETCHPL@UK.IBM.COM