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

Giới thiệu về PL / SQL VARRAY trong Cơ sở dữ liệu Oracle

VARRAY đã được đưa ra trong Oracle 8i vào năm 1998 như một phiên bản sửa đổi của bộ sưu tập kiểu bảng lồng nhau mà chúng ta đã thảo luận trong các blog trước.

Bài đọc được đề xuất:Cách tạo bảng lồng nhau -

  • Là phần tử Khối PL / SQL
  • Là Đối tượng Cơ sở dữ liệu
  • Sử dụng kiểu dữ liệu do người dùng xác định

Ngoài ra, bây giờ bạn có thể kiểm tra kiến ​​thức của mình về chủ đề này bằng cách làm bài kiểm tra tại đây.

VARRAY là một chủ đề quan trọng vì người ta thấy rằng thường luôn có một câu hỏi về nó trong kỳ thi chứng chỉ. Để giảm thiểu bất kỳ sự nhầm lẫn nào, trước tiên, chúng tôi sẽ xem qua phần giới thiệu của bộ sưu tập VARRAY.

VARRAY là từ viết tắt của Mảng có kích thước có thể thay đổi đã được giới thiệu trong Oracle 8i vào năm 1998 dưới dạng một định dạng sửa đổi của các bảng lồng nhau. Các sửa đổi lớn có thể được nhìn thấy trong định hướng lưu trữ. Không có thay đổi đáng chú ý nào trong quá trình triển khai nhưng hướng lưu trữ của chúng hoàn toàn khác so với các bảng lồng nhau.

Không giống như bảng lồng nhau yêu cầu một bảng bên ngoài để lưu trữ, VARRAY được lưu trữ trong dòng với bản ghi mẹ của chúng dưới dạng giá trị thô trong bảng mẹ. Nó có nghĩa là không cần điều khoản STORE AS nữa. Ồ, thật nhẹ nhõm, không có IO không cần thiết và hơn hết là hiệu suất tăng lên.

Chúng tôi có thể lưu và sử dụng lại VARRAY không?

Tương tự như Bảng lồng nhau VARRAY là kiểu Bộ sưu tập ổn định có nghĩa là chúng có thể được tạo dưới dạng đối tượng cơ sở dữ liệu có thể được lưu để sử dụng sau này. Các VARRAY cũng có thể được tạo như một thành viên của Khối PL / SQL. Phạm vi của VARRAY được khai báo bên trong khối PL / SQL được giới hạn trong khối mà nó được tạo.

VARRAY có giới hạn hay không giới hạn?

Không giống như bảng lồng nhau, VARRAY là dạng tập hợp có giới hạn. Ý tôi là theo ràng buộc, bạn phải quyết định có bao nhiêu phần tử bạn muốn lưu trữ trong bộ sưu tập của mình trong khi khai báo nó. Trong khi đó trong bảng lồng nhau là loại tập hợp không bị ràng buộc, không có giới hạn trên về số lượng phần tử.

Cơ chế lưu trữ VARRAYs

Cơ chế lưu trữ của VARRAYs là điểm khác biệt lớn nhất khiến chúng trở thành lựa chọn ưu việt hơn so với bảng lồng nhau. Không giống như các bảng lồng nhau yêu cầu một bảng bên ngoài để lưu trữ , các VARRAY được lưu trữ trong dòng với bản ghi mẹ của chúng dưới dạng giá trị thô trong bảng mẹ. Điều này có nghĩa là không có yêu cầu về điều khoản STORE AS hoặc bảng lưu trữ riêng biệt.

Việc lưu trữ trực tiếp các VARRAY giúp giảm các Đầu vào / Đầu ra (I / O) của đĩa, giúp VARRAY có hiệu suất cao hơn so với bảng lồng nhau. Nhưng khi VARRAY vượt quá dữ liệu 4K thì Oracle tuân theo cơ chế lưu trữ ngoại tuyến và lưu trữ VARRAY dưới dạng LOB.

Cú pháp để tạo các VARRAY PL / SQL

Trong phần này, chúng ta sẽ thấy cú pháp để tạo VARRAY là

  • Đối tượng Cơ sở dữ liệu và
  • Thành viên của Khối PL / SQL.

Bạn có thể xem Video về cùng chủ đề trên kênh YouTube của tôi, nơi tôi đã giải thích chi tiết cả hai cú pháp này.

VARRAY dưới dạng Đối tượng Cơ sở dữ liệu

CREATE [OR REPLACE] TYPE type_name
IS {VARRAY | VARYING ARRAY} (size_limit) OF element_type;

VARRAY với tư cách là thành viên của Khối PL / SQL

DECLARE
TYPE type_name IS {VARRAY | VARYING ARRAY} (size_limit) OF
element_type;

Cả hai cú pháp trên đều giống như của bảng lồng nhau ngoại trừ ở đây chúng ta có một mệnh đề bổ sung là Size_Limit. Giới hạn kích thước là một số nguyên sẽ cho biết số lượng phần tử tối đa mà VARRAY của bạn có thể chứa.

Luôn nhớ rằng tương tự như bảng lồng nhau, chúng ta chỉ có thể khai báo VARRAY trong phần khai báo của khối PL / SQL.

Làm cách nào để sửa đổi giới hạn kích thước của bộ sưu tập loại VARRAY?

Giới hạn kích thước của một VARRAY có thể được thay đổi bằng cách sử dụng câu lệnh ALTER TYPE DDL.

ALTER TYPE type_name MODIFY LIMIT new-size-limit [INVALIDATE | CASCADE]

Ở đâu:

LOẠI ALTER là một cụm từ dành riêng cho biết trình biên dịch mà bạn muốn thực hiện hành động DDL nào.

TÊN LOẠI là tên của loại mà bạn muốn thay đổi.

GIỚI HẠN SỬA ĐỔI là một mệnh đề thông báo cho trình biên dịch rằng người dùng muốn sửa đổi giới hạn kích thước.

GIỚI HẠN KÍCH THƯỚC MỚI là một số nguyên sẽ là giới hạn kích thước mới của VARRAY của bạn.

THAM GIA mệnh đề là một mệnh đề tùy chọn sẽ vô hiệu hóa tất cả các đối tượng phụ thuộc mà không có bất kỳ cơ chế kiểm tra nào.

Điều khoản CASCADE một lần nữa là một mệnh đề tùy chọn sẽ phổ biến các thay đổi đối với các loại và bảng phụ thuộc.

Cách bỏ bộ sưu tập loại VARRAY?

Để loại bỏ loại VARRAY, bạn có thể nhận trợ giúp từ câu lệnh DROP DDL.

DROP TYPE type_name [FORCE];

Ở đâu:

Loại thả

Là một câu lệnh DDL sử dụng mà bạn có thể loại bỏ bất kỳ loại nào được tạo trên cơ sở dữ liệu của mình.

Tên loại

Tên loại là tên của một loại đã được tạo mà bạn muốn bỏ vào.

Buộc

Chỉ định FORCE để loại bỏ loại ngay cả khi nó có các đối tượng cơ sở dữ liệu phụ thuộc. Cơ sở dữ liệu Oracle đánh dấu UNUSED tất cả các cột phụ thuộc vào loại sẽ bị loại bỏ và những cột đó trở nên không thể truy cập được. Hãy nhớ rằng thao tác này không thể khôi phục được và có thể khiến dữ liệu trong các bảng hoặc cột phụ thuộc không thể truy cập được.

Hy vọng bạn đã học được một cái gì đó mới. Bây giờ bạn có thể kiểm tra kiến ​​thức của bạn về chủ đề này bằng cách làm bài kiểm tra tại đây. Hãy giúp chúng tôi phát triển bằng cách chia sẻ blog này trên mạng xã hội của bạn. Bằng cách này, bạn cũng có thể giúp đỡ bạn bè của mình trong học tập. Cảm ơn và chúc một ngày tốt lành!


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Nhóm theo bí danh (Oracle)

  2. Cơ sở dữ liệu Oracle 21c

  3. Ví dụ về Oracle FOR LOOP REVERSE

  4. Sử dụng Oracle JDeveloper 12c với Cơ sở dữ liệu Oracle, Phần 1

  5. GROUP BY / nhầm lẫn hàm tổng hợp trong SQL