เคอร์เซอร์ที่ชัดเจนเทียบกับเคอร์เซอร์โดยนัย
เมื่อพูดถึงฐานข้อมูล เคอร์เซอร์คือโครงสร้างการควบคุมที่อนุญาตให้ข้ามผ่านระเบียนในฐานข้อมูล เคอร์เซอร์มีกลไกในการกำหนดชื่อให้กับคำสั่ง SQL select และสามารถใช้เพื่อจัดการข้อมูลภายในคำสั่ง SQL นั้นได้ เคอร์เซอร์โดยนัยจะถูกสร้างขึ้นและใช้ทุกครั้งที่มีการออกคำสั่ง Select ใน PL/SQL เมื่อไม่มีเคอร์เซอร์ที่กำหนดไว้อย่างชัดเจน นักพัฒนากำหนดเคอร์เซอร์ที่ชัดเจนตามที่ชื่อแนะนำ ใน PL/SQL เคอร์เซอร์ที่ชัดเจนคือคิวรีที่มีชื่อซึ่งกำหนดโดยใช้เคอร์เซอร์ของคีย์เวิร์ด
เคอร์เซอร์โดยนัยคืออะไร
เคอร์เซอร์โดยนัยจะถูกสร้างขึ้นโดยอัตโนมัติและใช้โดย Oracle ทุกครั้งที่ออกคำสั่ง select หากใช้เคอร์เซอร์โดยนัย ระบบจัดการฐานข้อมูล (DBMS) จะดำเนินการเปิด ดึงข้อมูล และปิดโดยอัตโนมัติ ควรใช้เคอร์เซอร์โดยนัยกับคำสั่ง SQL ที่ส่งคืนแถวเดียวเท่านั้น หากคำสั่ง SQL ส่งคืนมากกว่าหนึ่งแถว การใช้เคอร์เซอร์โดยนัยจะทำให้เกิดข้อผิดพลาด เคอร์เซอร์โดยนัยจะเชื่อมโยงกับคำสั่ง Data Manipulation Language (DML) แต่ละคำสั่งโดยอัตโนมัติ ได้แก่ คำสั่ง INSERT, UPDATE และ DELETE นอกจากนี้ เคอร์เซอร์โดยนัยยังใช้ในการประมวลผลคำสั่ง SELECT INTO เมื่อดึงข้อมูลโดยใช้เคอร์เซอร์โดยนัย ข้อยกเว้น NO_DATA_FOUND จะเพิ่มขึ้นได้เมื่อคำสั่ง SQL ไม่ส่งคืนข้อมูล นอกจากนี้ เคอร์เซอร์โดยนัยสามารถเพิ่มข้อยกเว้น TOO_MANY_ROWS เมื่อคำสั่ง SQL ส่งคืนมากกว่าหนึ่งแถว
เคอร์เซอร์ที่ชัดเจนคืออะไร
ดังที่กล่าวไว้ก่อนหน้านี้ เคอร์เซอร์ที่ชัดเจนคือคำค้นหาที่กำหนดโดยใช้ชื่อเคอร์เซอร์ที่ชัดเจนสามารถถูกมองว่าเป็นตัวชี้ไปยังชุดของเรกคอร์ด และตัวชี้สามารถย้ายไปข้างหน้าภายในชุดของเรกคอร์ด เคอร์เซอร์ที่ชัดเจนช่วยให้ผู้ใช้สามารถควบคุมการเปิด ปิด และดึงข้อมูลได้อย่างสมบูรณ์ นอกจากนี้ยังสามารถดึงข้อมูลได้หลายแถวโดยใช้เคอร์เซอร์ที่ชัดเจน เคอร์เซอร์ที่ชัดเจนยังสามารถรับพารามิเตอร์ได้เช่นเดียวกับฟังก์ชันหรือขั้นตอนใดๆ เพื่อให้ตัวแปรในเคอร์เซอร์สามารถเปลี่ยนแปลงได้ทุกครั้งที่ดำเนินการ นอกจากนี้ เคอร์เซอร์ที่ชัดเจนยังช่วยให้คุณดึงข้อมูลทั้งแถวไปยังตัวแปรเร็กคอร์ด PL/SQL เมื่อใช้เคอร์เซอร์ที่ชัดเจน จะต้องประกาศโดยใช้ชื่อก่อน แอตทริบิวต์เคอร์เซอร์สามารถเข้าถึงได้โดยใช้ชื่อที่กำหนดให้กับเคอร์เซอร์ หลังจากประกาศ จะต้องเปิดเคอร์เซอร์ก่อน จากนั้นสามารถเริ่มดึงข้อมูลได้ หากจำเป็นต้องดึงข้อมูลหลายแถว การดึงข้อมูลจะต้องดำเนินการภายในลูป สุดท้ายต้องปิดเคอร์เซอร์
ความแตกต่างระหว่างเคอร์เซอร์ที่ชัดเจนและเคอร์เซอร์โดยนัย
ความแตกต่างหลักระหว่างเคอร์เซอร์โดยนัยและเคอร์เซอร์ที่ชัดเจนคือต้องกำหนดเคอร์เซอร์ที่ชัดเจนโดยระบุชื่อในขณะที่เคอร์เซอร์โดยนัยจะถูกสร้างขึ้นโดยอัตโนมัติเมื่อคุณออกคำสั่งเลือกนอกจากนี้ ยังสามารถดึงข้อมูลได้หลายแถวโดยใช้เคอร์เซอร์ที่ชัดเจน ในขณะที่เคอร์เซอร์โดยนัยสามารถดึงข้อมูลได้เพียงแถวเดียวเท่านั้น นอกจากนี้ ข้อยกเว้น NO_DATA_FOUND และ TOO_MANY_ROWS จะไม่เพิ่มขึ้นเมื่อใช้เคอร์เซอร์ที่ชัดเจน ซึ่งต่างจากเคอร์เซอร์โดยนัย โดยพื้นฐานแล้ว เคอร์เซอร์โดยนัยมีความเสี่ยงต่อข้อผิดพลาดของข้อมูลมากกว่า และให้การควบคุมแบบเป็นโปรแกรมน้อยกว่าเคอร์เซอร์ที่ชัดเจน นอกจากนี้ เคอร์เซอร์โดยนัยยังถือว่ามีประสิทธิภาพน้อยกว่าเคอร์เซอร์ที่ชัดเจน