Oracle Типи даних PL/SQL: Boolean, Number, Date [Приклад]
⚡ Розумний підсумок
Типи даних PL/SQL визначають, як Oracle зберігає, обробляє та обмежує кожне значення в блоці. Вони групуються в сімейства символів, чисел, логічних значень, дат та великих об'єктів (LOB), кожне з яких має власний формат зберігання, обмеження розміру та правила призначення.

Що таке типи даних PL/SQL?
Типи даних у PL/SQL визначити, як дані будуть зберігатися, оброблятися та оброблюватися Oracle під час зберігання та обробки. Типи даних пов'язані з певним форматом зберігання та обмеженнями діапазону. У Oracle, кожному значенню або константі присвоюється тип даних.
Основна відмінність PL/SQL від SQL типи даних полягає в тому, що типи даних SQL обмежені стовпцями таблиці, тоді як типи даних PL/SQL використовуються в Блоки PL/SQL. Детальніше про це далі в підручнику.
Нижче наведено схему різних Oracle Типи даних PL/SQL:

Тип даних PL/SQL CHARACTER
Цей тип даних зберігає буквено-цифрові символи у рядковому форматі. Літеральні значення завжди слід брати в одинарні лапки під час присвоєння їх типу даних CHARACTER.
Цей тип символьних даних додатково класифікується наступним чином:
- Тип даних CHAR (фіксований розмір рядка)
- Тип даних VARCHAR2 (змінний розмір рядка)
- Тип даних VARCHAR
- NCHAR (власний фіксований розмір рядка)
- NVARCHAR2 (власний змінний розмір рядка)
- ДОВГИЙ і ДОВГИЙ СИРИЙ
| Тип даних | Опис | синтаксис |
|---|---|---|
| CHAR | Цей тип даних зберігає рядкове значення, а розмір рядка фіксований під час оголошення. змінна.
|
grade CHAR; manager CHAR (10):= 'guru99'; Пояснення синтаксису:
|
| VARCHAR2 | Цей тип даних зберігає рядок, але довжина не фіксована.
|
manager VARCHAR2(10) := 'guru99'; Пояснення синтаксису:
|
| ВАРЧАР | Це синонім типу даних VARCHAR2.
|
manager VARCHAR(10) := 'guru99'; Пояснення синтаксису:
|
| NCHAR | Цей тип даних такий самий, як CHAR, але набір символів є національним набором символів.
|
native NCHAR(10);
Пояснення синтаксису:
|
| NVARCHAR2 | Цей тип даних такий самий, як VARCHAR2, але набір символів є національним набором символів.
|
Native_var NVARCHAR2(10):= 'guru99'; Пояснення синтаксису:
|
| ДОВГИЙ і ДОВГИЙ СИРИЙ | Цей тип даних зберігає великий текст або необроблені дані розміром до 2 ГБ.
|
Large_text LONG; Large_raw LONG RAW; Пояснення синтаксису:
Примітка: Використання типу даних LONG не рекомендується OracleНатомість слід надавати перевагу типу даних LOB. |
Тип даних PL/SQL NUMBER
Цей тип даних зберігає числа з фіксованою або плаваючою комою з точністю до 38 цифр. Він використовується для роботи з полями, що містять лише числові дані. Змінну можна оголосити як з точністю та десятковими цифрами, так і без них. Значення не потрібно брати в лапки під час присвоєння.
A NUMBER(8,2); B NUMBER(8); C NUMBER;
Пояснення синтаксису:
- Перше оголошення оголошує змінну 'A' числового типу із загальною точністю 8 та 2 цифрами після коми.
- Другий оголошує 'B' числового типу із загальною точністю 8 та без десяткових цифр.
- Третій — найзагальніший, він оголошує числовий тип даних «C» без обмежень на точність або десяткові знаки. Він може містити до 38 цифр.
Тип даних PL/SQL BOOLEAN
Цей тип даних зберігає логічні значення. Oracle Булевський тип даних може мати значення TRUE або FALSE та використовується переважно в умовних операторах. Значення не потрібно брати в лапки під час присвоєння.
Var1 BOOLEAN;
Пояснення синтаксису:
- Змінна 'Var1' оголошена як логічне значення типу BOOLEAN. Вихід буде або true, або false залежно від встановленої умови.
Тип даних PL/SQL DATE
Цей тип даних зберігає значення у форматі дати, як число, місяць та рік. Щоразу, коли змінна визначається з типом даних DATE, вона може містити інформацію про час; за замовчуванням час встановлюється на 12:00:00, якщо не вказано значення. Значення потрібно брати в лапки під час присвоєння.
Стандарт Oracle Формат часу для вхідних та вихідних даних — «ДД-ПН-РР», який встановлюється в NLS_PARAMETERS (NLS_DATE_FORMAT) на рівні сеансу.
newyear DATE:= '01-JAN-2015'; current_date DATE:= SYSDATE;
Пояснення синтаксису:
- Змінна «newyear» оголошена як тип даних DATE та їй присвоюється значення 1 січня 2015 року.
- У другому оголошенні 'current_date' оголошується типом даних DATE та присвоюється поточна системна дата.
- Обидві змінні містять інформацію про час.
Тип даних LOB PL/SQL
Цей тип даних в основному використовується для зберігання та маніпулювання великими блоками неструктурованих даних, такими як зображення та мультимедійні файли. Oracle надає перевагу типу даних LOB над типом даних LONG, оскільки він є більш гнучким. Основні переваги LOB над LONG:
- Таблиця обмежена одним стовпцем LONG, тоді як кількість стовпців LOB не обмежена.
- Інструменти інтерфейсу даних приймають LOB під час реплікації, але пропускають стовпці LONG, які необхідно реплікувати вручну.
- Стовпець LONG зберігає до 2 ГБ, тоді як LOB може зберігати до 128 ТБ.
- Oracle постійно вдосконалює тип даних LOB з кожним випуском, тоді як LONG практично не змінюється.
Тому завжди краще використовувати тип даних LOB замість LONG. Різні типи даних LOB, наведені нижче, можуть зберігати до 128 терабайт:
- ЛИСТОК
- CLOB і NCLOB
- BFILE
| Тип даних | Опис | синтаксис |
|---|---|---|
| ЛИСТОК | Цей тип даних зберігає дані LOB у двійковому форматі файлу обсягом до 128 ТБ. Він не зберігає дані на основі деталей набору символів, тому може зберігати неструктуровані дані, такі як мультимедійні об'єкти та зображення. |
Binary_data BLOB;
Пояснення синтаксису:
|
| CLOB і NCLOB | CLOB зберігає дані LOB у наборі символів, тоді як NCLOB зберігає дані у рідному наборі символів. Оскільки ці сховища використовують сховище на основі набору символів, вони не можуть зберігати такі дані, як мультимедіа чи зображення. Максимальний розмір становить 128 ТБ. |
Charac_data CLOB;
Пояснення синтаксису:
|
| BFILE |
|
