Con trỏ rõ ràng vs Con trỏ ngầm
Khi nói đến cơ sở dữ liệu, con trỏ là cấu trúc điều khiển cho phép duyệt qua các bản ghi trong cơ sở dữ liệu. Một con trỏ cung cấp một cơ chế để gán tên cho câu lệnh chọn SQL và sau đó nó có thể được sử dụng để thao tác thông tin trong câu lệnh SQL đó. Các con trỏ ngầm định được tự động tạo và sử dụng mỗi khi câu lệnh Chọn được ban hành trong PL / SQL, khi không có con trỏ được xác định rõ ràng. Các con trỏ rõ ràng, như tên cho thấy, được xác định rõ ràng bởi nhà phát triển. Trong PL / SQL, một con trỏ rõ ràng thực sự là một truy vấn có tên được xác định bằng cách sử dụng con trỏ từ khóa.
Con trỏ tiềm ẩn là gì?
Các con trỏ ngầm định được Oracle tự động tạo và sử dụng mỗi khi một câu lệnh chọn được đưa ra. Nếu một con trỏ ẩn được sử dụng, Hệ thống quản lý cơ sở dữ liệu (DBMS) sẽ tự động thực hiện các hoạt động mở, tìm nạp và đóng. Các con trỏ ngầm định chỉ nên được sử dụng với các câu lệnh SQL trả về một hàng đơn. Nếu câu lệnh SQL trả về nhiều hơn một hàng, sử dụng con trỏ ẩn sẽ đưa ra lỗi. Một con trỏ ẩn được tự động liên kết với mỗi câu lệnh Ngôn ngữ thao tác dữ liệu (DML), cụ thể là các câu lệnh INSERT, UPDATE và DELETE. Ngoài ra, một con trỏ ẩn được sử dụng để xử lý các câu lệnh CHỌN VÀO. Khi tìm nạp dữ liệu bằng các con trỏ ẩn, ngoại lệ NO_DATA_FOUND có thể được nêu ra khi câu lệnh SQL không trả về dữ liệu. Hơn nữa, các con trỏ ẩn có thể đưa ra các ngoại lệ QUÁN_MANY_lawS khi câu lệnh SQL trả về nhiều hơn một hàng.
Con trỏ rõ ràng là gì?
Như đã đề cập trước đó, con trỏ rõ ràng là các truy vấn được xác định bằng cách sử dụng tên. Một con trỏ rõ ràng có thể được coi là một con trỏ tới một tập hợp các bản ghi và con trỏ có thể được di chuyển về phía trước trong tập hợp các bản ghi. Các con trỏ rõ ràng cung cấp cho người dùng toàn quyền kiểm soát việc mở, đóng và tìm nạp dữ liệu. Ngoài ra, nhiều hàng có thể được tìm nạp bằng một con trỏ rõ ràng. Các con trỏ rõ ràng cũng có thể lấy tham số giống như bất kỳ hàm hoặc thủ tục nào để các biến trong con trỏ có thể được thay đổi mỗi khi nó được thực thi. Ngoài ra, các con trỏ rõ ràng cho phép bạn tìm nạp toàn bộ một hàng vào biến bản ghi PL / SQL. Khi sử dụng một con trỏ rõ ràng, đầu tiên nó cần được khai báo bằng tên. Các thuộc tính con trỏ có thể được truy cập bằng cách sử dụng tên được đặt cho con trỏ. Sau khi khai báo, con trỏ cần được mở trước. Sau đó tìm nạp có thể được bắt đầu. Nếu nhiều hàng cần được tìm nạp, hoạt động tìm nạp cần được thực hiện trong một vòng lặp. Cuối cùng, con trỏ cần phải được đóng lại.
Sự khác biệt giữa con trỏ rõ ràng và con trỏ ngầm
Sự khác biệt chính giữa con trỏ ẩn và con trỏ tường minh là con trỏ rõ ràng cần được xác định rõ ràng bằng cách cung cấp tên trong khi con trỏ ẩn được tự động tạo khi bạn đưa ra câu lệnh chọn. Hơn nữa, nhiều hàng có thể được tìm nạp bằng các con trỏ rõ ràng trong khi các con trỏ ẩn chỉ có thể tìm nạp một hàng. Ngoài ra, các trường hợp ngoại lệ NO_DATA_FOUND và các thành phần không được nêu ra khi sử dụng các con trỏ rõ ràng, trái ngược với các con trỏ ẩn. Về bản chất, các con trỏ ẩn dễ bị lỗi dữ liệu hơn và cung cấp khả năng kiểm soát chương trình ít hơn so với các con trỏ rõ ràng. Ngoài ra, con trỏ ngầm được coi là kém hiệu quả hơn con trỏ rõ ràng.