Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Phương pháp thu thập:Hàm LIMIT trong Cơ sở dữ liệu Oracle

Hướng dẫn PL / SQL của ngày hôm nay là tất cả về GIỚI HẠN Phương pháp Thu thập. Chúng ta đã thấy 4 hàm trong loạt phương pháp thu thập này là - Đếm, Tồn tại, Đầu tiên và Cuối cùng. Giới hạn là hàm thứ năm mà chúng ta sẽ học hôm nay.

GIỚI HẠN Phương thức Thu thập là gì?

Phương thức thu thập LIMIT thực chất là một hàm PL / SQL trả về số phần tử tối đa mà một VARRAY có thể chứa. Điều này có nghĩa là bằng cách sử dụng hàm này, bạn có thể tìm ra bao nhiêu phần tử bạn có thể lưu trữ trong một VARRAY.

Phương thức thu thập LIMIT trả về điều gì?

Phương thức thu thập LIMIT trả về giá trị của loại PLS_INTEGER?

Chức năng này có hoạt động với hai tập hợp khác là Bảng lồng nhau và Mảng liên kết không?

Phương thức thu thập LIMIT chỉ hoạt động với VARRAY. Nếu nó được áp dụng cho bảng lồng nhau hoặc mảng kết hợp thì hàm này sẽ trả về giá trị NULL hoặc Không. Vì vậy, câu trả lời là, Không, hàm thu thập LIMIT không hoạt động với các bảng lồng nhau và Mảng liên kết.

Đặc điểm kỹ thuật của chức năng thu thập LIMIT là gì?

Đặc điểm kỹ thuật của chức năng thu thập LIMIT là:

FUNCTION LIMIT RETURN pls_integer;

Hàm thu thập LIMIT có đặt ra bất kỳ ngoại lệ nào không? Nếu có, thì khi nào?

Có, hàm LIMIT tăng ngoại lệ COLLECTION_IS_NULL nếu nó được áp dụng cho một bảng lồng nhau chưa khởi tạo hoặc một VARRAY.

Bạn có thể cho chúng tôi xem ví dụ về cách sử dụng hàm LIMIT không?

Chắc chắn, tại sao không. Dưới đây là một ví dụ rất đơn giản minh họa, cách sử dụng đúng chức năng thu thập LIMIT với VARRAY.

SET SERVEROUTPUT ON;
DECLARE
    TYPE inBlock_vry IS VARRAY (5) OF NUMBER;
    vry_obj inBlock_vry := inBlock_vry();
BEGIN
 --Let's find out total number of indexes in the above VARRAY
    DBMS_OUTPUT.PUT_LINE ('Total Indexes '||vry_obj.LIMIT);
END;
/

Không phải chúng ta có hàm COUNT cung cấp cùng một thông tin sao?

Hàm thu thập LIMIT trả về tổng số chỉ mục của một VARRAY bất kể các chỉ mục này trống hay chứa một số dữ liệu . Nó kiểm tra định nghĩa của VARRAY và xem tổng số phần tử mà nó được thiết kế để lưu trữ và trả về số đó.

Trong khi hàm thu thập COUNT trả về số lượng Chỉ mục không trống giữ một số dữ liệu .

Hãy xem chương trình PL / SQL này. Điều này sẽ giúp bạn hiểu rõ hơn sự khác biệt giữa phương pháp thu thập COUNT và LIMIT.

SET SERVEROUTPUT ON;
DECLARE
    --Create VARRAY of 5 element
    TYPE inblock_vry IS
        VARRAY ( 5 ) OF NUMBER;
    vry_obj   inblock_vry := inblock_vry ();
BEGIN
    --Insert into VARRAY
    	vry_obj.extend;
    	vry_obj(1) := 10 * 2; 
dbms_output.put_line('Total Number of Index ' || vry_obj.limit);
dbms_output.put_line('Total Number of Index which are occupied ' || vry_obj.count);
END;
/

Trong đoạn mã trên, chúng ta có một VARRAY có khả năng chứa 5 phần tử của kiểu dữ liệu NUMBER. Trong phần thực thi, chúng ta có hai câu lệnh đầu ra DBMS. Câu lệnh đầu ra đầu tiên hiển thị kết quả của hàm LIMIT sẽ trả về 5 vì đó là tổng độ mạnh của VARRAY của chúng ta trong khi câu lệnh đầu ra thứ hai sẽ trả về 1 vì trong số 5 chỉ mục đó chỉ có một chỉ mục có một số dữ liệu được lưu trữ trong đó.

Trong video, bạn đã nói rằng bạn sẽ chỉ cho chúng tôi cách tìm ra tổng số phần tử còn lại chưa được sử dụng để chúng tôi lưu trữ dữ liệu vào một varray bằng phương pháp thu thập LIMIT?

Là vậy sao? Tôi đã nói điều đó chưa? Tôi chỉ đùa thôi.

Rất dễ dàng tìm ra số chỉ mục trống để bạn sử dụng trong VARRAY. Hãy để tôi cho bạn biết làm thế nào.

Như tôi đã nói ở trên, hàm thu thập COUNT trả về số lượng chỉ mục có dữ liệu được lưu trữ trong chúng và hàm thu thập LIMIT trả về tổng số chỉ mục mà một VARRAY có thể chứa.

Nếu bạn trừ kết quả của hàm count khỏi kết quả của hàm LIMIT, bạn sẽ nhận được tổng số phần tử còn lại chưa được sử dụng để bạn lưu trữ dữ liệu vào một varray. Ví dụ

DECLARE
    --Create VARRAY of 5 element
    TYPE inblock_vry IS
        VARRAY ( 5 ) OF NUMBER;
    vry_obj   inblock_vry := inblock_vry ();
BEGIN
    --Insert into VARRAY
    vry_obj.extend;
    vry_obj(1) := 10 * 2;
    dbms_output.put_line('Total Number of Index ' || vry_obj.limit);
    dbms_output.put_line('Total Number of Index which are occupied ' || vry_obj.count);
    dbms_output.put_line('Total Number of Vacant index left for use '
                            || (vry_obj.limit - vry_obj.count) );
END;
/

Đó là hướng dẫn PL / SQL trả lời tất cả câu hỏi mà bạn có thể mong đợi trong kỳ thi chứng chỉ cũng như trong Cuộc phỏng vấn của bạn về phương pháp thu thập LIMIT trong cơ sở dữ liệu Oracle.

Có điều gì mà tôi quên đề cập hoặc đề cập đến trong hướng dẫn này không? Nếu có thì cho mình xin với. Viết thư cho tôi trên Twitter hoặc Facebook của tôi.

Cảm ơn có một ngày tuyệt vời.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. RMAN Các lệnh sao lưu

  2. Giải thích về toán tử INTERSECT của Oracle

  3. Giới thiệu về gói PL / SQL trong cơ sở dữ liệu Oracle

  4. Java:Cách chèn CLOB vào cơ sở dữ liệu oracle

  5. Oracle động DESC và ASC theo thứ tự