Типове данни на 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';
Обяснение на синтаксиса:
  • Първата декларация декларира променливата „степен“ на типа данни 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 GB.
  • Те се използват главно в речника на данните.
  • LONG типът данни се използва за съхраняване на данни от набор от символи, докато LONG RAW се използва за съхраняване на данни в двоичен формат.
  • Типът данни LONG RAW приема мултимедийни обекти, изображения и т.н., докато LONG работи само върху данни, които могат да се съхраняват с помощта на набор от символи.
Large_text LONG;Large_raw LONG RAW;
Обяснение на синтаксиса:
  • Горният декларационен декларация декларира променливата „Large_text“ от LONG тип данни и „Large_raw“ от LONG RAW тип данни.
Забележка: Използването на LONG тип данни не се препоръчва от Oracle. Вместо това трябва да се предпочита типът данни LOB.

НОМЕР Тип данни:

Този тип данни съхранява фиксирани или числа с плаваща запетая с точност до 38 цифри. Този тип данни се използва за работа с полета, които ще съдържат само числови данни. Променливата може да бъде декларирана или с точност и десетични цифри, или без тази информация. Стойностите не трябва да се затварят в кавички, докато се задава за този тип данни.

A NUMBER(8,2);B NUMBER(8);C NUMBER;

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

  • В горното, първата декларация декларира променливата „A“ е от числови тип данни с обща точност 8 и десетични цифри 2.
  • Втората декларация декларира променливата „B“ от тип данни с цифри с пълна точност 8 и без десетични цифри.
  • Третата декларация е най-общата, декларира променливата „C“ е от числови тип данни без ограничение в точността или десетичните знаци. Това може да отнеме до максимум 38 цифри.

BOOLEAN Тип данни:

Този тип данни съхранява логическите стойности. Той представлява TRUE или FALSE и се използва главно в условни изрази. Стойностите не трябва да се затварят в кавички, докато се задава за този тип данни.

Var1 BOOLEAN;

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

  • По-горе променливата „Var1“ е декларирана като тип данни BOOLEAN. Изходът на кода ще бъде или true или false въз основа на зададеното условие.

ДАТА Тип данни:

Този тип данни съхранява стойностите във формат на дата, като дата, месец и година. Всеки път, когато променлива е дефинирана с тип данни 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 колоната е 2GB, докато LOB може да съхранява до 128 TB.
  • Oracle непрекъснато подобрява типа данни LOB във всяко тяхно издание в съответствие със съвременните изисквания, докато типът данни LONG е постоянен и не получава много актуализации.

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

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

Този тип данни съхранява 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 е до ограничена операционна система и те са файлове само за четене и не могат да бъдат модифицирани.

Обобщение

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