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

Bản ghi PLSQL trong Oracle là gì

Bản ghi Oracle PLSQL

  • Bản ghi PLSQL là các kiểu dữ liệu tổng hợp. Nó là một nhóm các mục dữ liệu có liên quan dưới dạng các trường, mỗi mục có tên và kiểu dữ liệu riêng.
  • Bản ghi PL / SQL có cấu trúc tương tự như một hàng trong bảng cơ sở dữ liệu. Mỗi kiểu dữ liệu vô hướng trong bản ghi có một giá trị.
  • Một bản ghi bao gồm các thành phần của bất kỳ loại bảng vô hướng, PL / SQL hoặc PL / SQL nào.
  • Chúng có thể được xử lý như một đơn vị duy nhất. Các từ có thể có nhiều trường tùy theo yêu cầu.

Cách khai báo bản ghi Oracle PLSQL

( A) Bản ghi PLSQL do người dùng xác định

DECLARE TYPE employee_record_type IS RECORD 
 (emp_id NUMBER(10) NOT NULL,
 dept_no dept.deptno%TYPE,
 nаme varchar2(20),
 hire_dаte DATE := SYSDATE
 Last_name varchar2(20)
 );
 employee_record employee_record_type;

(1) Không có kiểu dữ liệu được xác định trước cho Bản ghi như kiểu dữ liệu vô hướng. Vì vậy, bạn cần tạo trước rồi chỉ định

(2) Mỗi ​​Trường trong Bản ghi có một tên duy nhất và kiểu dữ liệu cụ thể

(3) % LOẠI được sử dụng để khai báo một biến cùng loại với cột của bảng được chỉ định.

(4) chúng tôi sử dụng TYPE. . . Câu lệnh RECORD để tạo kiểu bản ghi của riêng bạn là khi một trường bản ghi của bạn cần phải là kiểu PL / SQL cụ thể, chẳng hạn như BOOLEAN. Nếu bạn sử dụng% ROWTYPE, kiểu dữ liệu của tất cả các trường sẽ bị hạn chế thành kiểu SQL

(5) Bản thân các bản ghi là kiểu dữ liệu PL / SQL cụ thể, vì vậy, một tính năng thú vị khác của các loại bản ghi do người dùng xác định là bạn có thể xác định một loại bản ghi như một trường trong khác loại bản ghi

DECLARE 
 TYPE emp_phone IS RECORD
 (
 Stdcode      PLS_INTEGER,
 phn_number   PLS_INTEGER,
 extension    PLS_INTEGER
 );
 TYPE contact_phone IS RECORD
 (
 day_phone#    emp_phone,
 eve_phone#    emp_phone,
 cell_phone#   emp_phone
 );
 sales_rep contact_phone;

B) Chúng tôi cũng có thể xác định ghi dưới dạng loại Hàng trong Bảng

DECLARE sales_data_rec apps.sales_data% ROWTYPE;

1) Điều này cho phép chúng tôi khai báo một bản ghi dựa trên tập hợp của cột trong bảng hoặc chế độ xem

2) Chúng tôi sử dụng tiền tố% ROWTYPE với bảng cơ sở dữ liệu để khai báo nó

3) Các trường trong bản ghi lấy tên và kiểu dữ liệu của chúng từ cột của bảng

C) Chúng tôi cũng có thể sử dụng% ROWTYPE để khai báo bản ghi có cấu trúc giống như câu lệnh SELECT trong con trỏ.

Điều này đặc biệt hữu ích để tìm nạp một tập hợp con các cột từ một bảng hoặc các cột từ nhiều bảng.

DECLARE 
 CURSOR emp_cur
 IS
 SELECT lastname, age,firstname FROM employees;
 l_employee   emp_cur%ROWTYPE;

Bất cứ khi nào bạn tìm nạp dữ liệu từ một con trỏ vào các biến PL / SQL, bạn nên khai báo một bản ghi dựa trên con trỏ đó với% ROWTYPE và tìm nạp nó vào bản ghi đó. Bằng cách này, khi và nếu danh sách CHỌN của con trỏ thay đổi, số lượng và loại trường trong bản ghi sẽ thay đổi tương ứng và mọi thứ sẽ vẫn được đồng bộ hóa.

Cách chuyển giá trị vào bản ghi Oracle PLSQL

Cú pháp Cách sử dụng
rec_name.col_name:=value; Để chỉ định trực tiếp giá trị cho một cột cụ thể của bản ghi.
rec_name.column_name:=value; Để chỉ định trực tiếp giá trị cho một cột cụ thể của bản ghi, nếu bản ghi được khai báo bằng% ROWTYPE.
CHỌN column1, column2 INTO rec_name.col_name1, rec_name.col_name2 FROM table_name [mệnh đề WHERE]; Để gán giá trị cho từng trường của bản ghi từ bảng cơ sở dữ liệu.
CHỌN * INTO record_name FROM table_name [mệnh đề WHERE]; Để gán giá trị cho tất cả các trường trong bản ghi từ bảng cơ sở dữ liệu.
tên_biến:=record_name.col_name; Để nhận giá trị từ cột bản ghi và gán giá trị đó cho một biến.

Bạn phải đọc các bài đăng PLSQL khác này

Cấu trúc và các loại khối Oracle PLSQL
Câu hỏi phỏng vấn Oracle plsql
Hướng dẫn nhanh Oracle sql và plsql


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle có sử dụng đánh giá ngắn mạch không?

  2. Bỏ qua thông số phạm vi ngày trong mệnh đề where khi thông số không được nhập

  3. Làm thế nào để có được quý từ ngày trong Oracle?

  4. 27 tập lệnh oracle dba cho Cơ sở dữ liệu Oracle để Quản trị và Giám sát

  5. Oracle PL / SQL:Ví dụ về DBMS_SCHEDULER.CREATE_JOB