Що таке типи даних PL / SQL?
Тип даних пов'язаний з певним форматом зберігання та обмеженнями діапазону. В Oracle кожному значенню або константі присвоюється тип даних.
В основному, це визначає, як дані зберігаються, обробляються та обробляються Oracle під час зберігання та обробки даних.
Основна різниця між типами даних PL / SQL і SQL полягає в тому, що тип даних SQL обмежений стовпцем таблиці, тоді як типи даних PL / SQL використовуються в блоках PL / SQL. Детальніше про це далі у підручнику.
Далі наведена схема різних типів даних у PL / SQL
У цьому підручнику ви дізнаєтесь-
- ХАРАКТЕР Тип даних
- ЧИСЛО Тип даних
- Тип даних BOOLEAN
- ДАТА Тип даних
- Тип даних LOB
ХАРАКТЕР Тип даних:
Цей тип даних в основному зберігає буквено-цифрові символи у рядковому форматі.
Буквальні значення завжди слід укладати в одинарні лапки, призначаючи їх типу даних CHARACTER.
Цей тип даних символів класифікується далі:
- Тип даних CHAR (фіксований розмір рядка)
- VARCHAR2 Тип даних (змінний розмір рядка)
- VARCHAR Тип даних
- NCHAR (власний фіксований розмір рядка)
- NVARCHAR2 (власний змінний розмір рядка)
- ДОВГО і ДОЛГО СИРЕ
Тип даних | Опис | Синтаксис |
---|---|---|
ЧАР | Цей тип даних зберігає значення рядка, і розмір рядка фіксується під час оголошення змінної.
|
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;Пояснення синтаксису:
|
NUMBER Тип даних:
Цей тип даних зберігає фіксовані чи числа з плаваючою комою до точності до 38 цифр. Цей тип даних використовується для роботи з полями, які будуть містити лише числові дані. Змінна може бути оголошена з точністю та десятковими цифрами, або без цієї інформації. Значення не потрібно вкладати в лапки під час призначення для цього типу даних.
A NUMBER(8,2);B NUMBER(8);C NUMBER;
Пояснення синтаксису:
- У наведеному вище перше оголошення оголошує, що змінна "A" має числовий тип даних із загальною точністю 8 та десятковими цифрами 2.
- Друга декларація оголошує, що змінна "B" має числовий тип даних із загальною точністю 8 і без десяткових цифр.
- Третя декларація є найбільш загальною, декларує, що змінна "C" має числовий тип даних без обмеження точності або десяткових знаків. Це може зайняти максимум 38 цифр.
Тип даних BOOLEAN:
Цей тип даних зберігає логічні значення. Він представляє або TRUE, або FALSE і в основному використовується в умовних операторах. Значення не потрібно вкладати в лапки під час призначення для цього типу даних.
Var1 BOOLEAN;
Пояснення синтаксису:
- У наведеному вище змінна 'Var1' оголошена як тип даних BOOLEAN. Вихідні дані коду будуть істинними або хибними залежно від встановленої умови.
ДАТА Тип даних:
Цей тип даних зберігає значення у форматі дати у вигляді дати, місяця та року. Кожного разу, коли змінна визначається типом даних DATE разом із датою, вона може містити інформацію про час, і за замовчуванням інформація про час встановлюється на 12:00:00, якщо не вказана. Значення потрібно вкладати в лапки, призначаючи для цього типу даних.
Стандартний формат часу Oracle для введення та виводу - 'DD-MON-YY', і він знову встановлюється на NLS_PARAMETERS (NLS_DATE_FORMAT) на рівні сесії.
newyear DATE:='01-JAN-2015';current_date DATE:=SYSDATE;
Пояснення синтаксису:
- У наведеному вище, змінна «Newyear» оголошений як тип DATE даних і присвоюється значення Яном 1 - го , 2015 день.
- Друга декларація оголошує змінну current_date як тип даних DATE і присвоює значення поточній системній даті.
- Обидві ці змінні містять інформацію про час.
Тип даних LOB:
Цей тип даних в основному використовується для зберігання та обробки великих блоків неструктурованих даних, таких як зображення, мультимедійні файли тощо. Oracle віддає перевагу LOB замість типу даних LONG, оскільки він є більш гнучким, ніж тип даних LONG. Нижче наведено кілька основних переваг LOB перед типом даних LONG.
- Кількість стовпців у таблиці з типом даних LONG обмежена 1, тоді як таблиця не має обмежень на кількість стовпців з типом даних LOB.
- Інструмент інтерфейсу даних приймає тип даних LOB таблиці під час реплікації даних, але опускає стовпець LONG таблиці. Ці довгі стовпці потрібно відтворювати вручну.
- Розмір стовпця LONG становить 2 ГБ, тоді як LOB може зберігати до 128 ТБ.
- Oracle постійно вдосконалює тип даних LOB у кожному їх випуску відповідно до сучасних вимог, тоді як тип даних LONG є постійним і не отримує багато оновлень.
Отже, завжди добре використовувати тип даних LOB замість типу даних LONG. Нижче наведено різні типи даних LOB. Вони можуть зберігати до 128 терабайт.
- BLOB
- CLOB та NCLOB
- BFILE
Тип даних | Опис | Синтаксис |
---|---|---|
BLOB |
Цей тип даних зберігає дані LOB у форматі двійкового файлу до максимального розміру 128 ТБ. Це не зберігає дані на основі деталей набору символів, так що вони можуть зберігати неструктуровані дані, такі як мультимедійні об'єкти, зображення тощо. |
Binary_data BLOB; Пояснення синтаксису:
|
CLOB та NCLOB |
Тип даних CLOB зберігає дані LOB у наборі символів, тоді як NCLOB зберігає дані у власному наборі символів. Оскільки ці типи даних використовують сховище, засноване на наборі символів, вони не можуть зберігати дані, такі як мультимедіа, зображення тощо, які не можуть бути введені в рядок символів. Максимальний розмір цих типів даних - 128 ТБ. |
Charac_data CLOB; Пояснення синтаксису:
|
BFILE |
|
Резюме
Ми розглянули різні прості типи даних, доступні в PL / SQL, разом із їх синтаксисом. Про складні типи даних ми дізнаємось у наступних темах.