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 (размер на собствения променлив низ)
- ДЪЛГО и ДЪЛГО СУРОВО
| Тип данни | Descriptйон | Синтаксис |
|---|---|---|
| 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 GB.
|
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 и присвоява текущата системна дата.
- И двете променливи съдържат информация за времето.
PL/SQL LOB тип данни
Този тип данни се използва главно за съхраняване и манипулиране на големи блокове от неструктурирани данни, като изображения и мултимедийни файлове. Oracle предпочита LOB пред типа данни LONG, защото е по-гъвкав. Основните предимства на LOB пред LONG са:
- Таблицата е ограничена до една LONG колона, докато няма ограничение за броя на LOB колоните.
- Инструментите за интерфейс за данни приемат LOB по време на репликация, но пропускат LONG колони, които трябва да се репликират ръчно.
- Дългата колона съхранява до 2 GB, докато LOB може да съхранява до 128 TB.
- Oracle продължава да подобрява типа данни LOB с всяка версия, докато LONG е до голяма степен непроменен.
Така че винаги е добре да използвате типа данни LOB вместо LONG. Различните типове данни LOB по-долу могат да съхраняват до 128 терабайта:
- петна
- CLOB и NCLOB
- BFILE
| Тип данни | Descriptйон | Синтаксис |
|---|---|---|
| петна | Този тип данни съхранява LOB данни в двоичен файлов формат до максимум 128 TB. Той не съхранява данни въз основа на подробности за набор от символи, така че може да съхранява неструктурирани данни, като например мултимедийни обекти и изображения. |
Binary_data BLOB;
Обяснение на синтаксиса:
|
| CLOB и NCLOB | CLOB съхранява LOB данни в набора от символи, докато NCLOB съхранява данни в оригиналния набор от символи. Тъй като тези устройства използват хранилище, базирано на набор от символи, не могат да съхраняват данни като мултимедия или изображения. Максималният размер е 128 TB. |
Charac_data CLOB;
Обяснение на синтаксиса:
|
| BFILE |
|
