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

Cách tạo VARRAY làm thành viên khối PL / SQL trong cơ sở dữ liệu Oracle

Hôm nay chúng ta sẽ thực hiện một số trình diễn thực tế để tìm hiểu cách tạo VARRAY trong Cơ sở dữ liệu Oracle, vì vậy hãy truy cập hướng dẫn cuối cùng để biết tất cả các lý thuyết cần thiết về VARRAY. Giống như mọi khi, tôi sẽ cố gắng giữ cho ví dụ đơn giản nhất có thể. Vì vậy, nếu bạn chưa quen với lập trình, đừng lo lắng, tôi hiểu rồi!

Trước đây chúng ta đã thảo luận trong phần giới thiệu về các VARRAY PL / SQL mà như các VARRAY trong bảng lồng nhau có thể được tạo

  • Là thành viên của Khối PL / SQL và
  • Là một đối tượng cơ sở dữ liệu.

Hôm nay chúng ta sẽ học cách tạo các VARRAY như một thành viên của khối PL / SQL và để phần còn lại cho các bài hướng dẫn trong tương lai.

Bước 1:Xác định Varray bên trong khối PL / SQL

Bạn chỉ có thể xác định một varray bên trong phần khai báo của một khối PL / SQL.

 	SET SERVEROUTPUT ON;
	DECLARE
	    TYPE inBlock_vry IS VARRAY (5) OF NUMBER;

Trong đoạn mã trên, chúng tôi đã tạo một VARRAY và đặt tên nó là inBlock_vry. Varray này có khả năng chứa 5 phần tử của kiểu dữ liệu Số.

Bước 2:Khởi tạo Varray

Việc khởi tạo một varray có thể dễ dàng được thực hiện bằng cách sử dụng biến bộ sưu tập. Để khởi tạo VARRAY, trước tiên chúng ta sẽ xác định một biến tập hợp và sau đó sử dụng nó để khởi tạo.

vry_obj inBlock_vry  :=  inBlock_vry();

Trong đoạn mã trên, chúng tôi đã tạo một biến bộ sưu tập với tên vry_obj và sử dụng biến đó để khởi tạo varray inBlock_vry.

Thông tin:
Một số sách đề cập đến biến bộ sưu tập là đối tượng bộ sưu tập, vì vậy xin đừng nhầm lẫn vì cả hai đều giống nhau .

Bước 3:Cách chèn dữ liệu vào VARRAY

Chèn dữ liệu vào varray tương tự như chèn dữ liệu vào mảng của ngôn ngữ lập trình khác. Bạn có thể chèn dữ liệu trực tiếp vào từng ô của varray bằng cách sử dụng số chỉ mục hoặc bạn có thể sử dụng LOOP để điền varray.

Cách chèn dữ liệu vào VARRAY bằng cách sử dụng chỉ mục của ô

Như chúng ta biết rằng cấu trúc của một tập hợp PL / SQL ô bao gồm một ô với một chỉ số con được gọi là chỉ mục. Chúng ta có thể sử dụng chỉ mục này để chèn dữ liệu vào varray.

	BEGIN
		vry_obj.EXTEND(5); 
		vry_obj(1):= 10*2;
		DBMS_OUTPUT.PUT_LINE(vry_obj(1));    
	END;
	/

Phần thực thi -1

Trong đoạn mã trên, chúng ta đã viết phần thực thi của khối PL / SQL. Nó bao gồm 3 câu lệnh thực thi. Ba câu lệnh này là -

Dòng 6:Tuyên bố 1

Câu lệnh đầu tiên là một cuộc gọi thủ tục EXTEND. Trong câu lệnh này, chúng tôi đang cấp phát bộ nhớ cho từng ô của VARRAY bằng thủ tục EXTEND.

Dòng 7:Tuyên bố 2

Trong câu lệnh thứ hai, chúng ta đang gán một giá trị số (giá trị bắt nguồn từ biểu thức nhân số học) vào ô đầu tiên của varray (ô có chỉ số 1).

Thông tin:
Trong bộ sưu tập PL / SQL, số chỉ mục VARRAY của ô bắt đầu bằng 1 trong khi số chỉ mục của ô trong mảng bắt đầu bằng 0.

Dòng 8:Tuyên bố 3

Câu lệnh thứ ba là một câu lệnh đầu ra trong đó chúng tôi hiển thị giá trị mà chúng tôi đã lưu trữ trong 1 ô của VARRY trở lại người dùng.

Đó là cách bạn có thể lưu trữ và hiển thị giá trị được lưu trữ trong từng ô của varray. Quá trình này chỉ tốt khi bạn có một varray ngắn. Nếu không thì đó không phải là một cách hiệu quả. Một cách khác để chèn dữ liệu vào Varray là sử dụng Loop.

Bài đọc được đề xuất:Giới thiệu về PL / SQL Loop

Cách chèn dữ liệu vào VARRAY bằng PL / SQL Loop

Cách phổ biến nhất để xử lý dữ liệu của một tập hợp là sử dụng Vòng lặp. Hầu hết các lập trình viên đã quen với việc sử dụng Vòng lặp để duyệt qua dữ liệu của bất kỳ loại mảng nào vì điều này dễ dàng, ít tốn thời gian và có ít dòng mã hơn giúp mã của bạn sạch hơn và dễ đọc. Trong ngắn hạn, nó rất dễ dàng và hiệu quả.

	BEGIN
	FOR i IN 1 .. vry_obj.LIMIT
	LOOP
 		vry_obj.EXTEND;
		vry_obj (i):= 10*i;    
		DBMS_OUTPUT.PUT_LINE (vry_obj (i));    
	END LOOP;
	END;
	/

Phần thực thi -2

Tôi đã giải thích chi tiết đoạn mã trên trong Video hướng dẫn trên kênh YouTube của tôi mà bạn có thể xem tại đây.

Vẫn để giảm thiểu sự nhầm lẫn, tôi sẽ giải thích cho bạn ở đây hai chức năng chính được sử dụng trong phần thực thi ở trên (Phần thực thi - 2) đó là - Giới hạn &Mở rộng.

Để hiểu cách làm việc của đoạn mã hiển thị ở trên, bạn cần phải hiểu về PL / SQL for vòng lặp. Rất vui, tôi đã thực hiện một hướng dẫn chi tiết về For-Loop, bạn có thể đọc tại đây.

Giới hạn (dòng 6): Giới hạn là một phương thức tập hợp trả về số phần tử tối đa được phép trong VARRAY. Trong trường hợp của chúng tôi, số phần tử tối đa được phép trong VARRAY là 5 (dòng 3), từ đó trở thành giới hạn trên của For-Loop ở đây.

Kéo dài (Dòng 8): Mở rộng là một thủ tục được sử dụng để cấp phát bộ nhớ và thêm một phần tử vào VARRAY. Nếu được sử dụng mà không có đối số (Phần thực thi-2 Dòng 8), nó sẽ thêm một phần tử null và nếu được sử dụng với một đối số EXTEND (n) (phần thực thi -1 Dòng 6) thì nó sẽ thêm n số vào tập hợp. Trong đó n là số nguyên bạn đã cung cấp làm đối số cho thủ tục EXTEND.

Đó là hướng dẫn PL / SQL về Cách tạo tập hợp VARRAY trong Cơ sở dữ liệu Oracle với tư cách là thành viên của khối PL / SQL. Hãy chắc chắn Thích blog này cũng như chia sẻ nó với bạn bè của bạn và đăng ký kênh của tôi vì nhiều Hướng dẫn như vậy vẫn chưa ra mắt. 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. Hết thời gian chờ kết nối cho DriverManager getConnection

  2. Oracle PLS-00363:không thể sử dụng biểu thức '' làm mục tiêu gán

  3. Сtạo máy ảo với hộp ảo Oracle VM

  4. Cách chạy Opatch ở dạng không tương tác

  5. Chọn số lượng (*) từ nhiều bảng