วันพุธที่ 7 ธันวาคม พ.ศ. 2554

[ db2 ] multi-row fetch insert update delete technique




improve insert processing by as much as 20%
improve fetch processing by as much as 50%-76%

ตัวอย่าง น้ะจ้ะ
text copybook

01 host-variables.
05 HV-ACT-NMBR-ARRAY PIC s9(04) USAGE COMP OCCURS 100 TIMES.
05 HV-ACT-CITY-ARRAY PIC x(40) OCCURS 100 TIMES.
05 HV-ACT-NAME-ARRAY OCCURS 100 TIMES.
49 HV-ACT-NMBR-ARRAY PIC s9(04) USGE COMP.
49 HV-ACT-NAME-ARRAY PIC x(40).
05 HV-IND-ARRAY PIC s9(04) USAGE COMP OCCURS 100 TIMES.


ตอน จะ declare CURSOR ก็เพิ่ม WITH ROWSET POSITIONING เข้าไป ( default จะเป็น WITHOUT ROWSET POSITIONING )

EXEC SQL
DECLARE GETSET CURSOR
WITH ROWSET POSITIONING
FOR
SELECT ACT-NMBR-ARRAY, ACT-CITY-ARRAY, ACT-NAME-ARRAY
FROM H_PRSN-ACT_TRNS_T
END-EXEC.
ตอน fetch จ้ะ

EXEC SQL       
FETCH NEXT ROWSET FROM GETSET FOR 100 ROWS
INTO :HV-ACT-NMBR-ARRAY,
:HV-ACT-CITY-ARRAY:HV-IND-ARRAY,
:HV-ACT-NAME-ARRAY
END-EXEC.


- นอกจาก NEXT ROWSET แล้ว เรายังสามารถใช้ PRIOR ROWSET, FIRST ROWSET, LAST ROWSET, CURRENT ROWSET, และ ROWSET STARTING AT ABSOLUTE or RELATIVE position ได้ด้วย

- FOR nn ROWS ถ้าไม่ใส่ จะใช้ค่า nn เดิม ที่คราวที่แล้วใช้

- เรียก row count ได้ผ่านทาง
GET DIAGNOSTICS
แทนที่จะไปดู SQLCODE +100


- multi-row fetch ยัง support FETCH FIRST nn ROWS ONLY ด้วยน้ะจ้ะ


ref : Willie Favero, Susan Lawson and Dan Luksetich, YL&A

ไม่มีความคิดเห็น:

LinkWithin

Related Posts Plugin for WordPress, Blogger...