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!