Oracle PL/SQL типове данни: Boolean, Number, Date [Пример]

Какво е PL/SQL типове данни?

Типове данни в PL/SQL се използват, за да се определи как данните ще се съхраняват, обработват и обработват от Oracle по време на съхранение и обработка на данни. Типовете данни са свързани със специфичния формат за съхранение и ограниченията на диапазона. в Oracle, всяка стойност или константа се присвоява с тип данни.

Основната разлика между PL/SQL и SQL типовете данни е, типът данни SQL е ограничен до колоната на таблицата, докато типовете данни PL/SQL се използват в PL/SQL блокове. Повече за това по-късно в урока.

Следва диаграмата на различни Oracle PL/SQL типове данни:

PL/SQL типове данни
Различни типове данни в PL/SQL

PL/SQL тип данни CHARACTER

Този тип данни основно съхранява буквено-цифрови знаци в низов формат.

Литералните стойности винаги трябва да бъдат затворени в единични кавички, докато ги присвоявате на тип данни CHARACTER.

Този символен тип данни се класифицира допълнително, както следва:

  • CHAR Тип данни (фиксиран размер на низ)
  • VARCHAR2 Тип данни (променлив размер на низ)
  • VARCHAR Тип данни
  • NCHAR (основен фиксиран размер на низ)
  • NVARCHAR2 (размер на собствения променлив низ)
  • ДЪЛГО и ДЪЛГО СУРОВО
Тип данни Descriptйон Синтаксис
CHAR Този тип данни съхранява стойността на низа и размерът на низа е фиксиран към момента на деклариране на променлив.

  • Oracle ще бъде празно подплатена променливата, ако променливата не заема целия размер, който е деклариран за нея, Следователно Oracle ще разпредели паметта за деклариран размер, дори ако променливата не я е заела напълно.
  • Ограничението за размера на този тип данни е 1-2000 байта.
  • Типът данни CHAR е по-подходящ за използване там, където винаги ще се обработва фиксиран размер на данните.
grade CHAR;
manager CHAR (10):= 'guru99';

Обяснение на синтаксиса:

  • Първият израз за декларация декларира променливата 'grade' от тип данни CHAR с максимален размер от 1 байт (стойност по подразбиране).
  • Вторият израз за декларация декларира променливата 'manager' от тип данни CHAR с максимален размер 10 и присвои стойността 'guru99', която е от 6 байта. Oracle ще разпредели паметта от 10 байта, а не от 6 байта в този случай.
VARCHAR2 Този тип данни съхранява низа, но дължината на низа не е фиксирана.

  • Ограничението за размера на този тип данни е 1-4000 байта за размера на колоната на таблицата и 1-32767 байта за променливите.
  • Размерът се определя за всяка променлива по време на декларирането на променливата.
  • Но Oracle ще разпредели памет само след като променливата е дефинирана, т.е. Oracle ще вземе предвид само действителната дължина на низа, който се съхранява в променлива за разпределение на паметта, а не размера, който е даден за променлива в частта за декларация.
  • Винаги е добре да използвате VARCHAR2 вместо тип данни CHAR, за да оптимизирате използването на паметта.
manager VARCHAR2(10) := ‘guru99';

Обяснение на синтаксиса:

  • Горният израз за декларация декларира променливата "manager" от тип данни VARCHAR2 с максимален размер 10 и присвои стойността "guru99", която е от 6 байта. Oracle ще разпредели памет от само 6 байта в този случай.
ВАРЧАР Това е синоним на типа данни VARCHAR2.

  • Винаги е добра практика да използвате VARCHAR2 вместо VARCHAR, за да избегнете промени в поведението.
manager VARCHAR(10) := ‘guru99';

Обяснение на синтаксиса:

  • Горният израз за декларация декларира променливата "manager" от тип данни VARCHAR с максимален размер 10 и присвои стойността "guru99", която е от 6 байта. Oracle ще разпредели памет от само 6 байта в този случай. (Подобно на VARCHAR2)
NCHAR Този тип данни е същият като типа данни CHAR, но наборът от знаци ще бъде от националния набор от знаци.

  • Този набор от символи може да бъде дефиниран за сесията с помощта на NLS_PARAMETERS.
  • Наборът от символи може да бъде UTF16 или UTF8.
  • Ограничението за размер е 1-2000 байта.
native NCHAR(10);

Обяснение на синтаксиса:

  • Горният израз за декларация декларира променливата „родна“ на типа данни NCHAR с максимален размер 10.
  • Дължината на тази променлива зависи от (броя дължини) на байт, както е дефинирано в набора от знаци.
NVARCHAR2 Този тип данни е същият като типа данни VARCHAR2, но наборът от знаци ще бъде от националния набор от знаци.

  • Този набор от символи може да бъде дефиниран за сесията с помощта на NLS_PARAMETERS.
  • Наборът от символи може да бъде UTF16 или UTF8.
  • Ограничението за размер е 1-4000 байта.
Native var NVARCHAR2(10):='guru99';

Обяснение на синтаксиса:

  • Горният израз за декларация декларира променливата „Native_var“ от типа данни NVARCHAR2 с максимален размер 10.
LONG и LONGRAW Този тип данни се използва за съхраняване на голям текст или необработени данни до максималния размер от 2 GB.

  • Те се използват главно в речника на данните.
  • Типът данни LONG се използва за съхраняване на данни от набор от знаци, докато LONG RAW се използва за съхраняване на данни в двоичен формат.
  • Типът данни LONG RAW приема медийни обекти, изображения и т.н., докато LONG работи само с данни, които могат да се съхраняват с помощта на набор от символи.
Large_text LONG;
Large_raw LONG RAW;

Обяснение на синтаксиса:

  • Горният израз за декларация декларира променливата „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. Резултатът от кода ще бъде или верен, или неверен въз основа на зададеното условие.

Тип данни PL/SQL DATE

Този тип данни съхранява стойностите във формат на дата, като дата, месец и година. Всеки път, когато дадена променлива е дефинирана с тип данни ДАТА заедно с датата, тя може да съдържа информация за времето и по подразбиране информацията за времето е зададена на 12:00:00, ако не е посочена. Стойностите трябва да бъдат затворени в кавички, докато присвоявате за този тип данни.

Стандарт Oracle форматът на времето за вход и изход е 'DD-MON-YY' и отново е зададен на NLS_PARAMETERS (NLS_DATE_FORMAT) на ниво сесия.

newyear DATE:='01-JAN-2015';
current_date DATE:=SYSDATE;

Обяснение на синтаксиса:

  • В горното променливата „нова година“ е декларирана като тип данни ДАТА и й е присвоена стойността на 1 януариst, дата 2015 г.
  • Втората декларация декларира променливата current_date като тип данни DATE и присвоява стойността с текущата системна дата.
  • И двете променливи съдържат информация за времето.

PL/SQL LOB тип данни

Този тип данни се използва главно за съхраняване и манипулиране на големи блокове от неструктурирани данни като изображения, мултимедийни файлове и др. Oracle предпочита LOB вместо тип данни LONG, тъй като е по-гъвкав от типа данни LONG. По-долу са няколко основни предимства на LOB пред типа данни LONG.

  • Броят на колоните в таблица с тип данни LONG е ограничен до 1, докато таблицата няма ограничение за броя на колоните с тип данни LOB.
  • Инструментът за интерфейс на данни приема LOB тип данни на таблицата по време на репликация на данни, но пропуска колона LONG на таблицата. Тези ДЪЛГИ колони трябва да се копират ръчно.
  • Размерът на колоната LONG е 2 GB, докато LOB може да съхранява до 128 TB.
  • Oracle непрекъснато подобрява типа данни LOB във всяка от техните версии според съвременните изисквания, докато типът данни LONG е постоянен и не получава много актуализации.

Така че винаги е добре да използвате тип данни LOB вместо тип данни LONG. Следват различните типове LOB данни. Те могат да съхраняват до размер от 128 терабайта.

  1. петна
  2. CLOB и NCLOB
  3. BFILE
Тип данни Descriptйон Синтаксис
петна Този тип данни съхранява LOB данните в двоичен файлов формат до максималния размер от 128 TB. Това не съхранява данни въз основа на подробностите за набора от символи, така че може да съхранява неструктурирани данни като мултимедийни обекти, изображения и др.
Binary_data BLOB;

Обяснение на синтаксиса:

  • В горното променливата „Binary_data“ е декларирана като BLOB.
CLOB и NCLOB Типът данни CLOB съхранява LOB данните в набора от знаци, докато NCLOB съхранява данните в основния набор от знаци. Тъй като тези типове данни използват базирано на набор от символи съхранение, те не могат да съхраняват данни като мултимедия, изображения и т.н., които не могат да бъдат поставени в символен низ. Максималният размер на тези типове данни е 128 TB.
Charac_data CLOB;

Обяснение на синтаксиса:

  • В горното променливата 'Charac_data' е декларирана като тип данни CLOB.
BFILE
  • BFILE са типовете данни, които съхраняват данните в неструктуриран двоичен формат извън базата данни като файл на операционната система.
  • Размерът на BFILE е за ограничена операционна система и те са файлове само за четене и не могат да бъдат модифицирани.

Oбобщение

Покрихме различните прости типове данни, които са налични в PL / SQL заедно с техния синтаксис. Ще научим за сложните типове данни в следващите теми.