Типи даних Oracle PL / SQL: логічне значення, число, дата (приклад)

Зміст:

Anonim

Що таке типи даних PL / SQL?

Тип даних пов'язаний з певним форматом зберігання та обмеженнями діапазону. В Oracle кожному значенню або константі присвоюється тип даних.

В основному, це визначає, як дані зберігаються, обробляються та обробляються Oracle під час зберігання та обробки даних.

Основна різниця між типами даних PL / SQL і SQL полягає в тому, що тип даних SQL обмежений стовпцем таблиці, тоді як типи даних PL / SQL використовуються в блоках PL / SQL. Детальніше про це далі у підручнику.

Далі наведена схема різних типів даних у PL / SQL

У цьому підручнику ви дізнаєтесь-

  • ХАРАКТЕР Тип даних
  • ЧИСЛО Тип даних
  • Тип даних BOOLEAN
  • ДАТА Тип даних
  • Тип даних LOB

ХАРАКТЕР Тип даних:

Цей тип даних в основному зберігає буквено-цифрові символи у рядковому форматі.

Буквальні значення завжди слід укладати в одинарні лапки, призначаючи їх типу даних CHARACTER.

Цей тип даних символів класифікується далі:

  • Тип даних CHAR (фіксований розмір рядка)
  • VARCHAR2 Тип даних (змінний розмір рядка)
  • VARCHAR Тип даних
  • NCHAR (власний фіксований розмір рядка)
  • NVARCHAR2 (власний змінний розмір рядка)
  • ДОВГО і ДОЛГО СИРЕ
Тип даних Опис Синтаксис
ЧАР Цей тип даних зберігає значення рядка, і розмір рядка фіксується під час оголошення змінної.
  • Oracle буде порожньою мінкою, якщо змінна не буде займати весь розмір, який був оголошений для неї, отже, Oracle виділить пам'ять для заявленого розміру, навіть якщо змінна не займає її повністю.
  • Обмеження розміру для цього типу даних становить 1-2000 байт.
  • Тип даних CHAR доцільніше використовувати там, де буде оброблятися будь-який фіксований розмір даних.
grade CHAR;manager CHAR (10):= 'guru99';
Пояснення синтаксису:
  • Перший оператор декларації оголосив змінну 'grade' типу даних CHAR з максимальним розміром 1 байт (значення за замовчуванням).
  • Другий оператор декларації оголосив змінну "менеджер" типу даних CHAR з максимальним розміром 10 і присвоїв значення "guru99", яке становить 6 байт. У цьому випадку Oracle виділить пам'ять 10 байт, а не 6 байт.
VARCHAR2 Цей тип даних зберігає рядок, але довжина рядка не є фіксованою.
  • Обмеження розміру для цього типу даних становить 1-4000 байт для розміру стовпця таблиці та 1-32767 байт для змінних.
  • Розмір визначається для кожної змінної під час оголошення змінної.
  • Але Oracle виділить пам'ять лише після того, як буде визначена змінна, тобто Oracle буде враховувати лише фактичну довжину рядка, який зберігається у змінній для виділення пам'яті, а не розмір, який був заданий для змінної в частині оголошення.
  • Завжди добре використовувати VARCHAR2 замість типу даних CHAR для оптимізації використання пам'яті.
manager VARCHAR2(10) := ‘guru99';
Пояснення синтаксису:
  • У наведеній вище заяві декларації оголошено змінну 'менеджер' типу даних VARCHAR2 з максимальним розміром 10 і присвоєно значення 'guru99', яке становить 6 байт. У цьому випадку Oracle виділить пам’ять лише 6 байт.
ВАРЧАР Це синонім типу даних VARCHAR2.
  • Завжди гарною практикою є використання VARCHAR2 замість VARCHAR, щоб уникнути змін у поведінці.
manager VARCHAR(10) := ‘guru99';
Пояснення синтаксису:
  • У наведеній вище заяві декларації оголошено змінну "менеджер" типу даних VARCHAR з максимальним розміром 10 і присвоєно значення "guru99", яке становить 6 байт. У цьому випадку Oracle виділить пам’ять лише 6 байт. (Подібно до VARCHAR2)
NCHAR Цей тип даних такий самий, як тип даних CHAR, але набір символів буде національним набором символів.
  • Цей набір символів можна визначити для сеансу за допомогою NLS_PARAMETERS.
  • Набір символів може бути UTF16 або UTF8.
  • Обмеження розміру становить 1-2000 байт.
native NCHAR(10);
Пояснення синтаксису:
  • У наведеному вище операторі декларації оголошується змінна 'native' типу даних NCHAR з максимальним розміром 10.
  • Довжина цієї змінної залежить від (кількості довжин) на байт, як визначено в наборі символів.
NVARCHAR2 Цей тип даних такий самий, як і тип даних VARCHAR2, але набір символів буде національним набором символів.
  • Цей набір символів можна визначити для сеансу за допомогою NLS_PARAMETERS.
  • Набір символів може бути UTF16 або UTF8.
  • Обмеження розміру становить 1-4000 байт.
Native var NVARCHAR2(10):='guru99';
Пояснення синтаксису:
  • Вищезазначена заява оголошує змінну 'Native_var' типу даних NVARCHAR2 з максимальним розміром 10.
ДОЛГО і ДОЛОГО Цей тип даних використовується для зберігання великого тексту або необроблених даних до максимального розміру 2 Гб.
  • Вони в основному використовуються у словнику даних.
  • Тип даних LONG використовується для зберігання даних набору символів, тоді як LONG RAW використовується для зберігання даних у двійковому форматі.
  • Тип даних LONG RAW приймає мультимедійні об’єкти, зображення тощо, тоді як LONG працює лише з даними, які можна зберегти за допомогою набору символів.
Large_text LONG;Large_raw LONG RAW;
Пояснення синтаксису:
  • Вищезазначена заява оголошує змінну 'Large_text' типу даних LONG та 'Large_raw' типу даних LONG RAW.
Примітка: Oracle не рекомендує використовувати тип даних LONG. Натомість слід віддавати перевагу типу даних LOB.

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 терабайт.

  1. BLOB
  2. CLOB та NCLOB
  3. BFILE
Тип даних Опис Синтаксис
BLOB

Цей тип даних зберігає дані LOB у форматі двійкового файлу до максимального розміру 128 ТБ. Це не зберігає дані на основі деталей набору символів, так що вони можуть зберігати неструктуровані дані, такі як мультимедійні об'єкти, зображення тощо.

Binary_data BLOB;

Пояснення синтаксису:

  • У наведеному вище змінна 'Binary_data' оголошена як BLOB.
CLOB та NCLOB

Тип даних CLOB зберігає дані LOB у наборі символів, тоді як NCLOB зберігає дані у власному наборі символів. Оскільки ці типи даних використовують сховище, засноване на наборі символів, вони не можуть зберігати дані, такі як мультимедіа, зображення тощо, які не можуть бути введені в рядок символів. Максимальний розмір цих типів даних - 128 ТБ.

Charac_data CLOB;

Пояснення синтаксису:

  • У наведеному вище змінна 'Charac_data' оголошена як тип даних CLOB.
BFILE
  • BFILE - це типи даних, які зберігали дані неструктурованого бінарного формату поза базою даних як файл операційної системи.
  • Розмір BFILE обмежений для операційної системи, і вони є файлами, доступними лише для читання, і не можуть бути змінені.

Резюме

Ми розглянули різні прості типи даних, доступні в PL / SQL, разом із їх синтаксисом. Про складні типи даних ми дізнаємось у наступних темах.