Oracle PL / SQL Veri Türleri: Boolean, Number, Date (Örnek)

İçindekiler:

Anonim

PL / SQL Veri Türleri nedir?

Bir veri türü, belirli depolama formatı ve aralık kısıtlamalarıyla ilişkilendirilir. Oracle'da her bir değer veya sabite bir veri türü atanır.

Temel olarak, verilerin depolama ve işleme sırasında Oracle tarafından nasıl saklandığını, işlendiğini ve işlendiğini tanımlar.

PL / SQL ve SQL veri türleri arasındaki temel fark, PL / SQL veri türleri PL / SQL bloklarında kullanılırken, SQL veri türünün tablo sütunuyla sınırlı olmasıdır. Bu konuda daha sonra öğreticide daha fazlası.

PL / SQL'deki farklı Veri Türlerinin diyagramı aşağıdadır

Bu eğitimde öğreneceksiniz-

  • KARAKTER Veri Türü
  • NUMBER Veri Türü
  • BOOLEAN Veri Türü
  • TARİH Veri Türü
  • LOB Veri Türü

KARAKTER Veri Türü:

Bu veri türü temelde alfasayısal karakterleri dize biçiminde saklar.

Değişmez değerler, CHARACTER veri türüne atanırken her zaman tek tırnak içine alınmalıdır.

Bu karakter veri türü ayrıca aşağıdaki şekilde sınıflandırılır:

  • CHAR Veri türü (sabit dizi boyutu)
  • VARCHAR2 Veri türü (değişken dize boyutu)
  • VARCHAR Veri türü
  • NCHAR (yerel sabit dize boyutu)
  • NVARCHAR2 (yerel değişken dize boyutu)
  • UZUN ve UZUN HAM
Veri tipi Açıklama Sözdizimi
CHAR Bu veri türü, dize değerini depolar ve dizenin boyutu, değişkeni bildirirken sabitlenir.
  • Değişken, kendisi için bildirilen boyutun tamamını işgal etmediyse, Oracle değişkeni boş dolduracaktır, Bu nedenle, değişken onu tam olarak işgal etmemiş olsa bile, Oracle belirtilen boyut için belleği ayıracaktır.
  • Bu veri türü için boyut kısıtlaması 1-2000 bayttır.
  • CHAR veri türü, sabit veri boyutunun işleneceği yerlerde kullanmak için daha uygundur.
grade CHAR;manager CHAR (10):= 'guru99';
Sözdizimi Açıklaması:
  • İlk bildirim ifadesi, maksimum 1 bayt (varsayılan değer) boyutunda CHAR veri türünün değişken 'derecesini' ilan etti.
  • İkinci bildirim ifadesi, CHAR veri türünün değişken "yöneticisi" ni maksimum 10 boyutunda ilan etti ve 6 bayt olan "guru99" değerini atadı. Oracle, bu durumda 6 bayt yerine 10 baytlık bellek ayıracaktır.
VARCHAR2 Bu veri türü dizeyi saklar, ancak dizenin uzunluğu sabit değildir.
  • Bu veri türü için boyut kısıtlaması, tablo sütun boyutu için 1-4000 bayt ve değişkenler için 1-32767 bayttır.
  • Değişken bildirimi sırasında her değişken için boyut tanımlanır.
  • Ancak Oracle, belleği yalnızca değişken tanımlandıktan sonra ayıracaktır, yani Oracle, bildirim bölümünde bir değişken için verilen boyuttan ziyade bellek tahsisi için bir değişkende depolanan dizenin yalnızca gerçek uzunluğunu dikkate alacaktır.
  • Bellek kullanımını optimize etmek için CHAR veri türü yerine VARCHAR2 kullanmak her zaman iyidir.
manager VARCHAR2(10) := ‘guru99';
Sözdizimi Açıklaması:
  • Yukarıdaki bildirim beyanı, VARCHAR2 veri türünün en fazla 10 büyüklüğünde 'yöneticisi' değişkenini ilan etti ve 6 baytlık 'guru99' değerini atadı. Oracle, bu durumda yalnızca 6 baytlık bellek ayıracaktır.
VARCHAR Bu, VARCHAR2 veri türü ile eş anlamlıdır.
  • Davranış değişikliklerini önlemek için VARCHAR yerine VARCHAR2 kullanmak her zaman iyi bir uygulamadır.
manager VARCHAR(10) := ‘guru99';
Sözdizimi Açıklaması:
  • Yukarıdaki bildirim beyanı, VARCHAR veri türünün maksimum boyutu 10 olan değişken "yöneticisi" ni ilan etti ve 6 bayt olan "guru99" değerini atadı. Oracle, bu durumda yalnızca 6 baytlık bellek ayıracaktır. (VARCHAR2'ye benzer)
NCHAR Bu veri tipi CHAR veri tipiyle aynıdır, ancak karakter seti ulusal karakter setinin olacaktır.
  • Bu karakter seti, NLS_PARAMETERS kullanılarak oturum için tanımlanabilir.
  • Karakter seti UTF16 veya UTF8 olabilir.
  • Boyut kısıtlaması 1-2000 bayttır.
native NCHAR(10);
Sözdizimi Açıklaması:
  • Yukarıdaki bildirim beyanı, NCHAR veri türünün 'yerel' değişkenini maksimum boyut 10 ile bildirir.
  • Bu değişkenin uzunluğu, karakter setinde tanımlandığı gibi bayt başına (uzunluk sayısına) bağlıdır.
NVARCHAR2 Bu veri tipi, VARCHAR2 veri tipiyle aynıdır, ancak karakter seti ulusal karakter setinde olacaktır.
  • Bu karakter seti, NLS_PARAMETERS kullanılarak oturum için tanımlanabilir.
  • Karakter seti UTF16 veya UTF8 olabilir.
  • Boyut kısıtlaması 1-4000 bayttır.
Native var NVARCHAR2(10):='guru99';
Sözdizimi Açıklaması:
  • Yukarıdaki bildirim beyanı, NVARCHAR2 veri türünün 'Native_var' değişkenini maksimum 10 boyutunda ilan eder.
UZUN ve UZUN DEMİR Bu veri türü, maksimum 2GB boyutuna kadar büyük metin veya ham verileri depolamak için kullanılır.
  • Bunlar çoğunlukla veri sözlüğünde kullanılır.
  • LONG veri türü, karakter seti verilerini depolamak için kullanılırken, LONG RAW verileri ikili biçimde depolamak için kullanılır.
  • LONG RAW veri türü medya nesnelerini, resimleri vb. Kabul ederken, LONG yalnızca karakter seti kullanılarak depolanabilen veriler üzerinde çalışır.
Large_text LONG;Large_raw LONG RAW;
Sözdizimi Açıklaması:
  • Yukarıdaki bildirim ifadesi, LONG veri türünün 'Large_text' ve LONG RAW veri türünün 'Large_raw' değişkenini bildirir.
Not: LONG veri türünün kullanılması Oracle tarafından önerilmez. Bunun yerine, LOB veri türü tercih edilmelidir.

NUMBER Veri Türü:

Bu veri türü sabit veya kayan noktalı sayıları 38 basamağa kadar hassasiyette depolar. Bu veri türü, yalnızca sayı verilerini içerecek alanlarla çalışmak için kullanılır. Değişken, hassas ve ondalık basamak ayrıntılarıyla veya bu bilgiler olmadan bildirilebilir. Bu veri türü için atama yapılırken değerlerin tırnak içine alınması gerekmez.

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

Sözdizimi Açıklaması:

  • Yukarıda, ilk bildirim, 'A' değişkeninin toplam hassasiyet 8 ve ondalık basamak 2 ile sayı veri türünde olduğunu bildirir.
  • İkinci bildirim, 'B' değişkeninin toplam hassasiyet 8 olan ve ondalık basamak içermeyen sayı veri türünde olduğunu bildirir.
  • Üçüncü bildirim en genel olanıdır, 'C' değişkeninin kesinlik veya ondalık basamaklarda herhangi bir sınırlama olmaksızın sayı veri türünde olduğunu bildirir. Maksimum 38 haneye kadar sürebilir.

BOOLEAN Veri Türü:

Bu veri türü mantıksal değerleri depolar. DOĞRU veya YANLIŞ'ı temsil eder ve çoğunlukla koşullu ifadelerde kullanılır. Bu veri türü için atama yapılırken değerlerin tırnak içine alınması gerekmez.

Var1 BOOLEAN;

Sözdizimi Açıklaması:

  • Yukarıda, 'Var1' değişkeni BOOLEAN veri türü olarak bildirilmiştir. Kodun çıktısı, koşul kümesine bağlı olarak doğru veya yanlış olacaktır.

TARİH Veri Türü:

Bu veri türü, değerleri tarih biçiminde, tarih, ay ve yıl olarak saklar. Tarihle birlikte DATE veri türü ile bir değişken tanımlandığında, zaman bilgisini tutabilir ve varsayılan olarak saat bilgisi belirtilmezse 12:00:00 olarak ayarlanır. Bu veri türü için atama yapılırken değerlerin tırnak içine alınması gerekir.

Giriş ve çıkış için standart Oracle zaman formatı 'DD-MON-YY'dir ve yine oturum düzeyinde NLS_PARAMETERS (NLS_DATE_FORMAT) olarak ayarlanır.

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

Sözdizimi Açıklaması:

  • Yukarıdaki, değişken 'NewYear' in TARİH veri türü olarak bildirilen ve 1 Ocak değeri atanır st 2015 tarih.
  • İkinci bildirim, current_date değişkenini DATE veri türü olarak bildirir ve değeri geçerli sistem tarihiyle birlikte atar.
  • Her iki değişken de zaman bilgisini tutar.

LOB Veri Türü:

Bu veri türü temel olarak, büyük yapılandırılmamış veri blokları gibi görüntüler, multimedya dosyaları, vb. Depolamak ve işlemek için kullanılır. Oracle, LONG veri türünden daha esnek olduğu için LONG veri türü yerine LOB'u tercih eder. Aşağıdakiler, LOB'nin LONG veri türüne göre birkaç temel avantajıdır.

  • LONG veri türüne sahip bir tablodaki sütun sayısı 1 ile sınırlıdır, oysa bir tablonun LOB veri türüne sahip birkaç sütun üzerinde kısıtlaması yoktur.
  • Veri arabirimi aracı, veri çoğaltma sırasında tablonun LOB veri türünü kabul eder, ancak tablonun UZUN sütununu atlar. Bu UZUN sütunların manuel olarak çoğaltılması gerekir.
  • LONG sütunun boyutu 2 GB iken LOB 128 TB'a kadar depolayabilir.
  • Oracle, her sürümünde LOB veri türünü modern gereksinime göre sürekli olarak iyileştirirken, LONG veri türü sabittir ve çok fazla güncelleme almamaktadır.

Bu nedenle, LONG veri türü yerine LOB veri türünü kullanmak her zaman iyidir. Aşağıda farklı LOB veri türleri verilmiştir. 128 terabayta kadar depolayabilirler.

  1. BLOB
  2. CLOB ve NCLOB
  3. BFILE
Veri tipi Açıklama Sözdizimi
BLOB

Bu veri türü, LOB verilerini ikili dosya formatında maksimum 128 TB boyutuna kadar depolar. Bu, verileri karakter seti ayrıntılarına göre depolamaz, böylece multimedya nesneleri, görüntüler vb. Gibi yapılandırılmamış verileri depolayabilir.

Binary_data BLOB;

Sözdizimi Açıklaması:

  • Yukarıda, 'Binary_data' değişkeni bir BLOB olarak bildirilmiştir.
CLOB ve NCLOB

CLOB veri türü, LOB verilerini karakter setinde saklarken, NCLOB verileri yerel karakter setinde saklar. Bu veri türleri karakter seti tabanlı depolama kullandıklarından, bunlar bir karakter dizisine konulamayan multimedya, resim vb. Verileri depolayamazlar. Bu veri türlerinin maksimum boyutu 128 TB'tır.

Charac_data CLOB;

Sözdizimi Açıklaması:

  • Yukarıda, 'Charac_data' değişkeni CLOB veri türü olarak bildirilmiştir.
BFILE
  • BFILE, yapılandırılmamış ikili format verilerini veritabanı dışında bir işletim sistemi dosyası olarak depolayan veri türleridir.
  • BFILE boyutu sınırlı bir işletim sistemi içindir ve salt okunur dosyalardır ve değiştirilemezler.

Özet

PL / SQL'de bulunan farklı basit veri türlerini sözdizimleriyle birlikte ele aldık. Diğer konularda karmaşık veri türleri hakkında bilgi edineceğiz.