Oracle Các kiểu dữ liệu PL/SQL: Boolean, Number, Date [Ví dụ]
Kiểu dữ liệu PL/SQL là gì?
Loại dữ liệu trong PL/SQL được sử dụng để xác định cách dữ liệu sẽ được lưu trữ, xử lý và xử lý bởi Oracle trong quá trình lưu trữ và xử lý dữ liệu. Các kiểu dữ liệu được liên kết với các ràng buộc phạm vi và định dạng lưu trữ cụ thể. TRONG Oracle, mỗi giá trị hoặc hằng số được gán một kiểu dữ liệu.
Sự khác biệt chính giữa PL/SQL và SQL kiểu dữ liệu là, kiểu dữ liệu SQL được giới hạn trong cột bảng trong khi kiểu dữ liệu PL/SQL được sử dụng trong Khối PL/SQL. Chúng ta sẽ tìm hiểu thêm về điều này ở phần sau của hướng dẫn.
Sau đây là sơ đồ của các loại khác nhau Oracle Các kiểu dữ liệu PL/SQL:

Kiểu dữ liệu PL/SQL CHARACTER
Kiểu dữ liệu này về cơ bản lưu trữ các ký tự chữ và số ở định dạng chuỗi.
Các giá trị bằng chữ phải luôn được đặt trong dấu ngoặc đơn khi gán chúng cho kiểu dữ liệu CHARACTER.
Kiểu dữ liệu ký tự này được phân loại thêm như sau:
- Kiểu dữ liệu CHAR (kích thước chuỗi cố định)
- Kiểu dữ liệu VARCHAR2 (kích thước chuỗi thay đổi)
- Kiểu dữ liệu VARCHAR
- NCHAR (kích thước chuỗi cố định gốc)
- NVARCHAR2 (kích thước chuỗi biến gốc)
- DÀI và DÀI NGUYÊN
Loại dữ liệu | Mô tả | cú pháp |
---|---|---|
XE TĂNG | Kiểu dữ liệu này lưu trữ giá trị chuỗi và kích thước của chuỗi được cố định tại thời điểm khai báo biến.
|
grade CHAR; manager CHAR (10):= 'guru99'; Giải thích cú pháp:
|
VARCHAR2 | Kiểu dữ liệu này lưu trữ chuỗi nhưng độ dài của chuỗi không cố định.
|
manager VARCHAR2(10) := ‘guru99'; Giải thích cú pháp:
|
VARCHAR | Điều này đồng nghĩa với kiểu dữ liệu VARCHAR2.
|
manager VARCHAR(10) := ‘guru99'; Giải thích cú pháp:
|
NCHAR | Kiểu dữ liệu này giống với kiểu dữ liệu CHAR nhưng bộ ký tự sẽ thuộc bộ ký tự quốc gia.
|
native NCHAR(10); Giải thích cú pháp:
|
NVARCHAR2 |
Kiểu dữ liệu này giống với kiểu dữ liệu VARCHAR2, nhưng bộ ký tự sẽ thuộc bộ ký tự quốc gia.
|
Native var NVARCHAR2(10):='guru99'; Giải thích cú pháp:
|
DÀI và DÀI | Loại dữ liệu này được sử dụng để lưu trữ văn bản lớn hoặc dữ liệu thô có kích thước tối đa là 2GB.
|
Large_text LONG; Large_raw LONG RAW; Giải thích cú pháp:
Lưu ý: Việc sử dụng kiểu dữ liệu LONG không được khuyến khích bởi Oracle. Thay vào đó, kiểu dữ liệu LOB nên được ưu tiên. |
SỐ PL/SQL Kiểu dữ liệu
Kiểu dữ liệu này lưu trữ các số dấu phẩy động hoặc cố định có độ chính xác lên đến 38 chữ số. Kiểu dữ liệu này được sử dụng để làm việc với các trường chỉ chứa dữ liệu số. Biến có thể được khai báo với độ chính xác và chi tiết chữ số thập phân hoặc không có thông tin này. Các giá trị không cần phải được đặt trong dấu ngoặc kép khi gán cho kiểu dữ liệu này.
A NUMBER(8,2); B NUMBER(8); C NUMBER;
Giải thích cú pháp:
- Trong phần trên, khai báo đầu tiên khai báo biến 'A' là kiểu dữ liệu số với tổng độ chính xác là 8 và chữ số thập phân là 2.
- Câu khai báo thứ hai khai báo biến 'B' là kiểu dữ liệu số có độ chính xác tổng cộng là 8 và không có chữ số thập phân.
- Khai báo thứ ba là khai báo chung nhất, khai báo biến 'C' là kiểu dữ liệu số không có giới hạn về độ chính xác hoặc số thập phân. Có thể chứa tối đa 38 chữ số.
Kiểu dữ liệu BOOLEAN PL/SQL
Kiểu dữ liệu này lưu trữ các giá trị logic. Oracle Kiểu dữ liệu Boolean đại diện TRUE hoặc FALSE và chủ yếu được sử dụng trong các câu lệnh điều kiện. Các giá trị không cần đặt trong dấu ngoặc kép khi gán cho loại dữ liệu này.
Var1 BOOLEAN;
Giải thích cú pháp:
- Ở trên, biến 'Var1' được khai báo là kiểu dữ liệu BOOLEAN. Đầu ra của mã sẽ là đúng hoặc sai dựa trên bộ điều kiện.
PL/SQL DATE Kiểu dữ liệu
Kiểu dữ liệu này lưu trữ các giá trị ở định dạng ngày, dưới dạng ngày, tháng và năm. Bất cứ khi nào một biến được xác định bằng kiểu dữ liệu DATE cùng với ngày, nó có thể chứa thông tin thời gian và theo mặc định, thông tin thời gian được đặt thành 12:00:00 nếu không được chỉ định. Các giá trị cần phải đặt trong dấu ngoặc kép khi gán cho loại dữ liệu này.
Tiêu chuẩn này Oracle định dạng thời gian cho đầu vào và đầu ra là 'DD-MON-YY' và nó lại được đặt ở NLS_PARAMETERS (NLS_DATE_FORMAT) ở cấp phiên.
newyear DATE:='01-JAN-2015'; current_date DATE:=SYSDATE;
Giải thích cú pháp:
- Ở trên, biến 'newyear' được khai báo là kiểu dữ liệu DATE và được gán giá trị là ngày 1 tháng XNUMXst, ngày 2015
- Câu khai báo thứ hai khai báo biến current_date là kiểu dữ liệu DATE và gán giá trị bằng ngày hiện tại của hệ thống.
- Cả hai biến này đều chứa thông tin thời gian.
Kiểu dữ liệu PL/SQL LOB
Kiểu dữ liệu này chủ yếu được sử dụng để lưu trữ và thao tác các khối lớn dữ liệu phi cấu trúc như hình ảnh, tệp đa phương tiện, v.v. Oracle thích LOB thay vì kiểu dữ liệu LONG vì nó linh hoạt hơn kiểu dữ liệu LONG. Dưới đây là một số ưu điểm chính của LOB so với kiểu dữ liệu LONG.
- Số lượng cột trong bảng có kiểu dữ liệu LONG được giới hạn ở 1, trong khi đó một bảng không có hạn chế về số lượng cột có kiểu dữ liệu LOB.
- Công cụ giao diện dữ liệu chấp nhận kiểu dữ liệu LOB của bảng trong quá trình sao chép dữ liệu, nhưng nó bỏ qua cột LONG của bảng. Các cột DÀI này cần được sao chép thủ công.
- Kích thước của cột LONG là 2GB, trong khi LOB có thể lưu trữ tới 128 TB.
- Oracle đang không ngừng cải tiến kiểu dữ liệu LOB trong mỗi bản phát hành của mình theo yêu cầu hiện đại, trong khi kiểu dữ liệu LONG không đổi và không nhận được nhiều cập nhật.
Vì vậy, luôn tốt khi sử dụng kiểu dữ liệu LOB thay vì kiểu dữ liệu LONG. Sau đây là các kiểu dữ liệu LOB khác nhau. Chúng có thể lưu trữ tới 128 terabyte.
- BÃI
- CLOB và NCLOB
- BFILE
Loại dữ liệu | Mô tả | cú pháp |
---|---|---|
BÃI | Kiểu dữ liệu này lưu trữ dữ liệu LOB ở định dạng tệp nhị phân có kích thước tối đa là 128 TB. Kiểu dữ liệu này không lưu trữ dữ liệu dựa trên chi tiết bộ ký tự, do đó có thể lưu trữ dữ liệu phi cấu trúc như đối tượng đa phương tiện, hình ảnh, v.v. |
Binary_data BLOB; Giải thích cú pháp:
|
CLOB và NCLOB | Kiểu dữ liệu CLOB lưu trữ dữ liệu LOB vào bộ ký tự, trong khi NCLOB lưu trữ dữ liệu trong bộ ký tự gốc. Vì các loại dữ liệu này sử dụng bộ lưu trữ dựa trên bộ ký tự nên chúng không thể lưu trữ dữ liệu như đa phương tiện, hình ảnh, v.v. mà không thể đưa vào chuỗi ký tự. Kích thước tối đa của các loại dữ liệu này là 128 TB. |
Charac_data CLOB; Giải thích cú pháp:
|
BFILE |
|
Tổng kết
Chúng tôi đã đề cập đến các loại dữ liệu đơn giản khác nhau có sẵn trong PL / SQL cùng với cú pháp của chúng. Chúng ta sẽ tìm hiểu về các kiểu dữ liệu phức tạp trong các chủ đề tiếp theo.