PLSQL วิธี Fetch ข้อมูลใน Cursor แบบต่างๆ
การเขียน PLSQL บ่อยครั้งเราคงเลี่ยงไม่ได้ที่จำเป็นต้องใช้ Cursor เอาไว้ Query ข้อมูลเป็น List ออกมา ตัวอย่างตามนี้เลยครับมันทำได้หลายแบบอ่ะ เช่น
ก่อนอื่นประกาศ Type ก่อน
TYPE cur is REF CURSOR;
myCursor cur;
strSQL varchar2(32767);
v_count Number;
ในโปรแกรมก็
strSQL:= 'select count(*) cc from my_table a';
strSQL:=strSQL||' where a.my_field = 10 and '||my_param;
open myCursor for strSQL;
LOOP
FETCH myCursor INTO v_count;
EXIT WHEN myCursor%NOTFOUND;
END LOOP;
CLOSE myCursor;
ถ้าเป็นแบบสั้นๆ ก็สามารถใช้ได้ครับตามนี้ไม่ต้องประกาศ type อะไรก็ได้ใช้ได้เลย
FOR j IN (select count(*) cc from my_table) LOOP
p_count := j.cc;
end loop;
หรือ อีกแบบดู code เต็มๆ ก็ประมาณนี้
ตัวอย่างเต็มๆ การใช้ Cursor ใน PL