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

Cách tạo biến kiểu dữ liệu bản ghi do người dùng xác định trong cơ sở dữ liệu Oracle

Cho đến nay, chúng ta đã thấy cách tạo các biến kiểu dữ liệu bản ghi dựa trên Bảng và dựa trên con trỏ. Phần còn lại là kiểu dữ liệu bản ghi do người dùng xác định mà chúng ta sẽ đề cập trong hướng dẫn hôm nay.

Như tên cho thấy, bản ghi do người dùng xác định là các biến bản ghi có cấu trúc do người dùng xác định, không giống như bản ghi dựa trên bảng hoặc dựa trên con trỏ có cấu trúc được dẫn xuất từ ​​các bảng hoặc con trỏ tương ứng của chúng. Điều này có nghĩa là với bản ghi do người dùng xác định, bạn có thể có toàn quyền kiểm soát cấu trúc của biến bản ghi của mình.

Quá trình tạo biến bản ghi do người dùng định nghĩa được chia thành hai phần. Trước khi xác định bản ghi, trước tiên chúng ta cần xác định TYPE cho biến bản ghi. TYPE này sẽ trở thành cơ sở của biến Bản ghi do Người dùng xác định và sẽ giúp thúc đẩy cấu trúc của nó. Khi TYPE được khai báo thành công thì chúng ta có thể sử dụng nó để tạo biến bản ghi do người dùng xác định.

Cú pháp của bản ghi do người dùng xác định trong cơ sở dữ liệu Oracle

Dưới đây là cú pháp để tạo TYPE cho Biến kiểu dữ liệu bản ghi do người dùng xác định.

TYPE type_name IS RECORD (
field_name1 datatype 1,
field_name2 datatype 2,
...
field_nameN datatype N 
);

Khi chúng tôi đã khai báo TYPE của mình, chúng tôi đã sẵn sàng tạo Biến bản ghi của mình. Biến này sau đó sẽ nhận được tất cả các thuộc tính của kiểu mà nó được tạo ra. Và đây là cú pháp để tạo biến kiểu dữ liệu bản ghi do người dùng xác định.

record_name TYPE_NAME;

Bạn có nhận thấy rằng không giống như Biến bản ghi dựa trên bảng hoặc dựa trên con trỏ, chúng ta không phải sử dụng thuộc tính% ROWTYPE ở đây để khai báo biến bản ghi không?

Bạn có thể xem Video Hướng dẫn trên kênh YouTube của tôi để được giải thích chi tiết về cú pháp trên.

Ví dụ:Cách tạo biến kiểu dữ liệu bản ghi do người dùng xác định.

Bước 1:Loại khai báo cho biến bản ghi do người dùng xác định

SET SERVEROUTPUT ON;
DECLARE
  TYPE rv_dept IS RECORD(
    f_name  VARCHAR2(20),
    d_name  DEPARTMENTS.department_name%TYPE 
  );

Bước 2:Khai báo biến bản ghi do người dùng xác định

Sau khi tạo TYPE, bạn đã sẵn sàng tạo Biến bản ghi do người dùng xác định.

var1 rv_dept;

Câu lệnh PL / SQL ở trên này sẽ tạo một biến bản ghi với tên VAR1.

Bước 3:Khởi tạo biến bản ghi do người dùng xác định.

Biến bản ghi do người dùng xác định có thể được khởi tạo theo nhiều cách. Ví dụ:bạn có thể khởi tạo trực tiếp biến bản ghi bằng cách gán giá trị cho nó bằng cách sử dụng biến gán hoặc bạn có thể tìm nạp các giá trị được lưu trữ vào cột của bảng bằng câu lệnh SELECT-INTO. Vì vậy, hãy tiếp tục với ví dụ của chúng tôi và tìm hiểu cách khởi tạo biến bản ghi do người dùng xác định bằng cách sử dụng câu lệnh SELECT-INTO.

Tiếp theo tôi sẽ viết phần thực thi. Trong phần thực thi, chúng ta sẽ có một câu lệnh SELECT sẽ kết hợp bảng nhân viên và bảng phòng ban và trả về họ và tên bộ phận của nhân viên cụ thể.

BEGIN
  SELECT first_name , department_name 
  INTO var1.f_name, var1.d_name
  FROM employees  join departments
  Using (department_id) WHERE employee_id = 100; 
  DBMS_OUTPUT.PUT_LINE(var1.f_name||' '||var1.d_name);
END;

Câu lệnh select mà chúng tôi có ở đây sẽ trả về tên và tên bộ phận của nhân viên có id nhân viên là 100. Dữ liệu cho cả hai cột đều đến từ các bảng khác nhau, do đó chúng tôi đã sử dụng một JOIN ở đây. Vì có hai bảng khác nhau liên quan đến truy vấn, do đó trong tình huống như vậy, việc sử dụng Biến bản ghi dựa trên bảng là không thể thực hiện được, do đó giải pháp khả thi là biến bản ghi do người dùng xác định.

Hãy kết hợp tất cả các đoạn mã trên lại với nhau thành một khối PL / SQL ẩn danh.

SET SERVEROUTPUT ON;
DECLARE
  TYPE rv_dept IS RECORD(
    f_name  VARCHAR2(20),
    d_name  departments.department_name%type 
  );
  var1 rv_dept;
BEGIN
  SELECT first_name , department_name 
  INTO var1.f_name, var1.d_name
  FROM employees  join departments
  Using (department_id) WHERE employee_id = 100;
  
  DBMS_OUTPUT.PUT_LINE(var1.f_name||' '||var1.d_name);
END;
/

Đó là cách chúng tôi tạo Biến kiểu dữ liệu bản ghi do người dùng xác định trong cơ sở dữ liệu Oracle. Hy vọng bạn thích đọc và học được điều gì đó mới. Ngoài ra, tôi đang tặng hàng hóa của RebellionRider cho một người chiến thắng được chọn ngẫu nhiên hàng tháng, vì vậy hãy đảm bảo chia sẻ blog này với bạn bè trên mạng xã hội của bạn.

Cảm ơn tất cả mọi người 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. ORA-00984:cột không được phép ở đây

  2. Lỗi DYLD_LIBRARY_PATH của Oracle Instantclient

  3. Làm cách nào để truy cập Oracle từ Python?

  4. Oracle:Làm cách nào để thêm phút vào dấu thời gian?

  5. Làm thế nào bạn có thể biết nếu một giá trị không phải là số trong Oracle?