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

Ví dụ về loại bảng trong Oracle PL SQL

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.

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Thủ tục lưu trữ Oracle với các tham số cho mệnh đề IN

  2. Oracle 12cR2 hiện đang trong giai đoạn Beta

  3. 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

  4. 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?

  5. Ngày của Javascript thành đối tượng ngày sql