Cách tạo bảng lồng nhau bên trong khối PL / SQL
Chào mừng bạn đến với hướng dẫn thứ hai của loạt bài Tuyển tập PL / SQL. Trong hướng dẫn này, chúng ta sẽ tìm hiểu loại Bộ sưu tập đầu tiên là “Bảng lồng nhau”. Bảng bên trong bảng là định nghĩa đơn giản nhất mà người ta có thể nghĩ ra và nó đúng theo mọi cách vì một bảng được nhúng bên trong một bảng khác chính xác như tên bảng lồng nhau gợi ý.
Tuy nhiên, nếu chúng ta phải định nghĩa bộ sưu tập ‘Bảng lồng nhau’ theo một cách kỹ thuật và lạ mắt hơn thì chúng ta có thể nói Bảng lồng nhau là cấu trúc một chiều bền bỉ và không bị ràng buộc về bản chất. Chúng có thể truy cập được trong SQL cũng như PL / SQL và có thể được sử dụng trong các bảng, bản ghi và định nghĩa đối tượng. Vì nó là một tập hợp PL / SQL không bị ràng buộc nên nó có thể chứa bất kỳ số phần tử nào trong một tập hợp có thứ tự ngẫu nhiên.
Định nghĩa
Bảng lồng nhau là cấu trúc một chiều bền vững và không bị ràng buộc về bản chất. Chúng có thể truy cập được trong SQL cũng như PL / SQL và có thể được sử dụng trong các bảng, bản ghi và định nghĩa đối tượng. Vì nó là một tập hợp PL / SQL không bị ràng buộc nên nó có thể chứa bất kỳ số phần tử nào trong một tập hợp không có thứ tự.
Đề xuất đọc:Giới thiệu về Bộ sưu tập PL / SQL
Một bảng lồng nhau có thể được tạo bên trong khối PL / SQL hoặc trong cơ sở dữ liệu dưới dạng đối tượng kiểu tập hợp (Đối tượng lược đồ). Trong trường hợp bảng lồng nhau trước đây hoạt động như một mảng một chiều không có bất kỳ loại chỉ mục nào hoặc bất kỳ giới hạn trên nào.
Vì vậy, hiện tại chúng ta hãy tập trung vào cách tạo Bảng lồng nhau bên trong khối PL / SQL và để phần còn lại cho hướng dẫn tiếp theo.
Cú pháp tạo bảng lồng nhau
DECLRE TYPE nested_table_name IS TABLE OF element_type [NOT NULL];
Tôi đã giải thích chi tiết cú pháp này trong video hướng dẫn trên kênh YouTube của tôi. Tôi thực sự khuyên bạn nên tham khảo video đó.
Ví dụ:Cách tạo Bảng lồng nhau bên trong Khối PL / SQL?
Ví dụ sau chỉ để trình bày cách tạo bảng lồng nhau, không có gì lạ về nó.
SET SERVEROUTPUT ON; DECLARE TYPE my_nested_table IS TABLE OF number; var_nt my_nested_table := my_nested_table (9,18,27,36,45,54,63,72,81,90); BEGIN DBMS_OUTPUT.PUT_LINE ('Value Stored at index 1 in NT is ' ||var_nt (1)); DBMS_OUTPUT.PUT_LINE ('Value Stored at index 2 in NT is ' ||var_nt (2)); DBMS_OUTPUT.PUT_LINE ('Value Stored at index 3 in NT is ' ||var_nt (3)); END; /
Ví dụ trên là một ví dụ rất đơn giản, trong đó chúng tôi tạo một bảng lồng nhau và đặt tên là ‘my_nested_table’ (dòng số 3). Trong dòng tiếp theo (dòng số 4), chúng tôi đã tạo một thể hiện của cùng một bộ sưu tập và sử dụng nó để khởi tạo bảng lồng nhau và lưu trữ một số dữ liệu vào đó. Trong phần thực thi, chúng tôi truy cập dữ liệu được lưu trữ riêng lẻ bằng cách sử dụng số chỉ mục, giống như cách chúng tôi đã làm trong mảng.
Thay vì truy cập từng dữ liệu theo cách thủ công bằng cách sử dụng chỉ mục, chúng ta có thể sử dụng các vòng lặp và chuyển đổi qua từng phần tử của bảng lồng nhau tập hợp.
SET SERVEROUTPUT ON; DECLARE TYPE my_nested_table IS TABLE OF number; var_nt my_nested_table := my_nested_table (9,18,27,36,45,54,63,72,81,90); BEGIN FOR i IN 1..var_nt.COUNT LOOP DBMS_OUTPUT.PUT_LINE ('Value stored at index '||i||'is '||var_nt(i)); END LOOP; END; /
Đó là một ví dụ khác về cách tạo bảng lồng nhau, trong đó chúng tôi xoay vòng dữ liệu và hiển thị lại cho người dùng bằng For Loop.
Đó là cách tạo các bảng lồng nhau trong các khối PL / SQL. Hãy theo dõi như trong hướng dẫn tiếp theo, chúng ta sẽ tìm hiểu cách tạo các bảng lồng nhau làm đối tượng thu thập cơ sở dữ liệu và tất cả các dạng xem từ điển dữ liệu mà bạn có thể sử dụng để lấy thông tin của các bảng lồng nhau được lưu trữ trong cơ sở dữ liệu của bạn.
Đó là tất cả. Cảm ơn vì đã đọc và chúc một ngày tốt lành!