Các kiểu bảng PL SQL thực sự là các tập hợp, giống như một mảng. Với sự trợ giúp của bộ sưu tập PL SQL, bạn có thể xử lý dữ liệu số lượng lớn một cách hiệu quả. Trong bài đăng này, tôi sẽ dạy bạn các lệnh rất cơ bản và được sử dụng thường xuyên nhất cho các bộ sưu tập kiểu bảng PL SQL. Dưới đây là kiểu bảng trong ví dụ Oracle PL SQL.
Đầu tiên bạn cần khai báo nó trong phần khai báo của khối PL SQL. Đây là cú pháp với ví dụ:
Loại bảng trong ví dụ Oracle PL SQL
1. Khai báo các loại bảng PL SQL
Type any_table_type is table of emp%rowtype index by binary_integer; emp_rec any_table_type;
Các lệnh trên sẽ khai báo kiểu bảng any_table_type của kiểu hàng bảng emp rồi khởi tạo bằng emp_rec. Sau khi khai báo, bạn có thể gán các giá trị cho nó theo cách thủ công. Dưới đây là ví dụ:
2. Gán giá trị cho kiểu bảng PL SQL
set serveroutput on; declare Type any_table_type is table of emp%rowtype index by binary_integer; emp_rec any_table_type; begin emp_rec(1).ename := 'abc'; /* assigning values */ emp_rec(2).ename := 'xyz'; dbms_output.put_line(emp_rec(1).ename); /* accessing values */ dbms_output.put_line(emp_rec(2).ename); end;
Bởi vì bảng PL SQL là các mảng giống như, vì vậy các giá trị nên được gán bằng cách cho số phần tử của mảng, như được hiển thị ở trên. Dưới đây là ví dụ về cách Xóa khỏi bộ sưu tập kiểu bảng PL SQL.
3. Xóa các phần tử khỏi các loại bảng PL SQL
set serveroutput on; declare Type any_table_type is table of emp%rowtype index by binary_integer; emp_rec any_table_type; begin emp_rec(1).ename := 'abc'; emp_rec(2).ename := 'xyz'; emp_rec.delete(1); /* will delete first element */ for i in emp_rec.first .. emp_rec.last loop /* loop through the array */ dbms_output.put_line(emp_rec(i).ename); end loop; end;
Ví dụ trên sẽ xóa phần tử đầu tiên và sẽ chỉ in phần tử thứ hai. Khi bạn thực hiện khối trên, kết quả đầu ra sẽ là:
Đã hoàn tất thành công thủ tục xyz
PL / SQL.
Để xóa tất cả các phần tử khỏi loại bảng PL SQL, dưới đây là ví dụ:
emp_rec.delete;
4. Điền các loại bảng PL SQL bằng cách sử dụng thu thập hàng loạt
Dưới đây là kiểu bảng trong ví dụ oracle PL SQL để tìm nạp dữ liệu từ bảng emp và sau đó nó sẽ điền vào kiểu bảng PL SQL bằng Bulk Collect và sau đó nó sẽ cập nhật bảng emp bằng FORALL. Đây là ví dụ:
set serveroutput on; DECLARE CURSOR c IS SELECT * FROM emp; TYPE any_table_type IS TABLE OF emp%ROWTYPE INDEX BY BINARY_INTEGER; emp_rec any_table_type; BEGIN OPEN c; FETCH c BULK COLLECT INTO emp_rec; CLOSE c; FORALL i IN emp_rec.FIRST .. emp_rec.LAST UPDATE emp SET comm = emp_rec (i).sal * 10 / 100 WHERE empno = emp_rec (i).empno; COMMIT; END;
Bạn cũng có thể kiểm tra Công cụ thủ tục PL SQL của tôi để tạo tập lệnh cho sự phát triển của bạn.
-
Thủ tục lưu trữ Oracle với các tham số cho mệnh đề IN
-
Oracle 12cR2 hiện đang trong giai đoạn Beta
-
Oracle (11.2.0.1):Cách xác định hàng hiện được cập nhật bởi câu lệnh UPDATE
-
Có ai biết kỹ thuật mã hóa JDeveloper / SQL Developer đang sử dụng để duy trì thông tin đăng nhập không?
-
Ngày của Javascript thành đối tượng ngày sql