Con trỏ ngầm là con trỏ được Oracle "tự động" tạo cho bạn khi bạn thực hiện một truy vấn. Nó đơn giản hơn để viết mã, nhưng bị
- không hiệu quả (tiêu chuẩn ANSI chỉ định rằng nó phải tìm nạp hai lần để kiểm tra xem có nhiều hơn một bản ghi hay không)
- lỗ hổng đối với lỗi dữ liệu (nếu bạn nhận được hai hàng, điều đó sẽ dẫn đến ngoại lệ TOO_MANY_ROWS)
Ví dụ
SELECT col INTO var FROM table WHERE something;
Con trỏ rõ ràng là con trỏ do bạn tự tạo. Cần nhiều mã hơn, nhưng cung cấp nhiều quyền kiểm soát hơn - ví dụ:bạn chỉ có thể mở-tìm nạp-đóng nếu bạn chỉ muốn bản ghi đầu tiên và không quan tâm nếu có những bản ghi khác.
Ví dụ
DECLARE
CURSOR cur IS SELECT col FROM table WHERE something;
BEGIN
OPEN cur;
FETCH cur INTO var;
CLOSE cur;
END;