Hãy xác định "con trỏ ẩn" như một câu lệnh SELECT được thực hiện trong vòng lặp FOR.
Nhìn vào nó từ một quan điểm thực tế - bất kể có hay không một con trỏ tiềm ẩn được mở ra, câu hỏi quan trọng là "Bạn có thể làm gì với nó?". Theo hiểu biết tốt nhất của tôi, câu trả lời cho câu hỏi đó là "Không có gì". Bạn không có một biến con trỏ để làm việc với, không có cách nào (mà tôi biết) để truy cập vào con trỏ ngầm, và do đó bạn thực sự không thể ảnh hưởng đến nó.
Có hai việc bạn có thể làm. Đầu tiên là hoàn toàn tránh việc sử dụng các con trỏ ngầm. Chỉ sử dụng con trỏ rõ ràng, đi qua tất cả các bước mở, tìm nạp, đóng, v.v. Điều này cho bạn mức kiểm soát tối đa. Nếu bạn đang vào loại điều này, đi cho nó.
Mặt khác, bạn có thể sử dụng các con trỏ ngầm và không lo lắng. Tôi tốt với không đáng lo ngại. :-) Nghiêm túc, mặc dù, con trỏ ngầm là IMO cực kỳ tốt hơn so với con trỏ rõ ràng. Có ít mã để viết, và do đó ít mã để vít lên. Hệ thống có thể, trong một số trường hợp, tối ưu hóa việc sử dụng các con trỏ tiềm ẩn mà không yêu cầu bạn viết một đống mã phụ. Mã bạn viết rõ ràng hơn và dễ hiểu hơn - không phải là mối quan tâm nếu bạn đang làm việc trong một cửa hàng một người nơi bạn viết và duy trì tất cả mã, nhưng ở đây tại Corporateville, chúng tôi thường phải viết mã người khác sẽ duy trì và ngược lại, và nó được coi là lịch sự để bàn giao mã sạch nhất, rõ ràng nhất mà chúng ta có thể có. Có nhiều lần (chẳng hạn như khi chuyển một biến con trỏ cho người gọi từ bên ngoài Oracle) khi con trỏ rõ ràng là cần thiết, nhưng đối với hầu hết mã tôi đang sử dụng con trỏ FOR-LOOP ẩn - và LOVING it! (Và điểm thưởng bổ sung cho những người có thể nhớ lại nơi rằng đến từ :-)
Chia sẻ và thưởng thức.
Nguồn
2013-03-04 12:42:13
Nó có thể hữu ích nếu bạn xác định chính xác ý bạn là gì bởi "con trỏ ẩn". Bạn có nghĩa là một vòng lặp FOR bằng cách sử dụng SQL, hoặc DML? –