5 Kasım 2011 Cumartesi

PL/SQL'e Giriş

PL/SQL açılımı Procedural Language/Structured Query Languge'dir.Yani Prosedür Dili/ Yapılandırılmış Sorgulama Dili.PL/SQL yapısal dillere ait özelliklerin SQL’e eklenmesiyle ortaya çıkan Oracle’a has bir dildir.PL/SQL Oracle firmasının piyasaya sürdüğü her üründe önemli bir yere sahiptir. Kullanıcılar PL/SQL’i kullanarak programlarına bir çok yeni özellikler katmaktadırlar. Bunlar arasında;
  • PL/SQL tabanlı kaydedilmiş yordamlar(stored procedures) ve veritabanı tetiklemeleri(triggers) ile önemli iş kurallarını programlamak
  • Oracle Developer ürünleri ile güçlü ve kolay kullanılabilir görsel ortamlarla programları detaylandırmak ve daha rahat kontrol etmek
  • Oracle tabanlı uygulamalarda nesne-tabanlı(object-oriented) tasarımlar yapma Web sayfalarından Oracle veritabanlarına link yapma
  • PL/SQL’in belki de en önemli özelliği istemci-sunucu ortamları tasarlama ile ağ üzerinde dağıtık işlemler yapma ve bir çok sorguyu çalıştırma imkanı sunmasıdır.
PL/SQL nesneleri :
  • Constant(Sabitler),
  • Variable(Değişkenler),
  • Exception(İstisnalar),
  • Procedure(Prosedürler),
  • Function(Fonksiyonlar),
  • Package(Paketler),
  • Record(Kayıtlar),
  • PL/SQL Table,
  • Cursor(İmleçler),
  • Reserved Word(Reserve Edilmiş Kelimelerdir BEGIN, END gibi)
*PL/SQL çalıştırmak içn Sql*Plus, Toad, PL/SQL Developer gibi programlara giriş yaparak kullanabiliriz.Ben uygulamaları Toad kullanarak yapacağım.

BEGIN
DBMS_OUTPUT.PUT_LINE('Merhaba PL/SQL!');
END;
/
Ekran Çıktısı:
Merhaba PL/SQL!
PL/SQL procedure successfully completed.

Eğer sizin bilgisayarınız bu çıktı görünmüyorsa SQL kodun başına
SET SERVEROUTPUT ON; kodunu ekleyin.Bu sunucunun dışaraya yazı çıkartmasını sağlar.

1.Blok Yapısı
PL/SQL programı blok yapılarına bölünür.Her blok PL/SQL ve SQL deyimlerini içerir.Tipik bir PL/SQL bloğu aşağıdaki yapıya sahiptir.

[DECLARE
declaration_statements
]
BEGIN
executable_statements
[EXCEPTION
exception_handling_statements
]
END;

I)Tanımlama ve istisna blokları isteğe bağlıdır.
II)declaration_statements sonradan geri kalanı blok kullanılan değişkenler bildirir.
III)Bu değişkenler, o blok için yerel.
IV)Bildirimleri her zaman blok başında yerleştirilir.
V)executable_statements blok için gerçek çalıştırılabilir ifadeler.
VI)
executable_statements döngüler, koşullu mantığı, vb gibi görevleri gerçekleştirmek için ifadeler içerebilir.
VII)
exception_handling_statements herhangi bir hata yakalama ifadelerdir.
VIII
Her deyim, bir noktalı virgül ile sonlandırılır (;).
IX)
Bir blok END anahtar kelime kullanarak sonlandırılır.

Örnekbir blok yapısı şu şekildedir:
DECLARE
genislik INTEGER;
yukseklik INTEGER :=2;
alan INTEGER;
BEGIN
alan := 6;
genislik := alan / yukseklik;
DBMS_OUTPUT.PUT_LINE('Genişlik = ' || genislik );
EXCEPTION
WHEN ZERO_DIVIDE THEN
DBMS_OUTPUT.PUT_LINE('Sıfıra Bölme Hatası');
END;
/
Output:
Genislik = 3
PL/SQL procedure successfully completed.

  • BAŞLICA PL/SQL VERİ TİPLERİ:
NUMBER: 38 basamağa kadar destek sunan nümerik veri tipidir.
BINARY_INTEGER: Nümerik bir yapıya sahiptir.Number veri tipinden farkı veritabanında daha az yer kaplamasıdır.
CHAR: Karakter veri tipidir.
VARCHAR2: Karakter veri tipidir.Değişken uzunlukta karakterleri tutabilir. Maksimum uzunluğu 32767 bytedır.
LONG: Varchar2 veri tipi gibidir. Fakat karakter tutma sınırı 2GB’a kadar yükselir.
LONG RAW: Long tipinde binary olarak veri tutan veri tipidir.
BOOLEAN: True-False tipi değerleri depolar.
DATE: Tarih ve saat unsurlarını tutabilen veri tipidir.
TIMESTAMP: Date gibi tarih saat değerlerini tutar. Ayrıntılı olarak yüzyıldan saniyeye kadar olan bütün bilgileri tutar.

Veri Tipleri ile İlgili Başlıca Özellikler:
  • PL/SQL de değer atama := sembolleriyle yapılır
  • Değişken tanımlanması şu şekilde yapılmaktadır;
<değişken ismi> veri tipi [NOT NULL ] [:= <ilk değer>]

DECLARE
sistem_tarihi DATE := sysdate;
BEGIN
DBMS_OUTPUT.PUT_LINE(sistem_tarihi);
END;
/
Output:
05/11/2011
PL/SQL procedure successfully completed.

  • Sabitlerin tanımlanması ise adı üzerinde sabit bir değer verilir ve sonradan değiştirilemez.Değişkenlerden farkı bununla birlikte ilk değer atamasının hemen yapılmasıdır
   <sabit_ismi> veri tipi CONSTANT [NOT NULL] [:=<ilk değer>]
 Pi_sayisi CONSTANT NUMBER := 3.14; gibi

  • Pl/Sql’de veritabanı ile iletişimde olan tipler tanımlamaktan bahsedersek %TYPE ve %ROWTYPE niteleyicilerini kullanabilirsiniz.Örneğin aşağıdaki cümlede çalışanlar tablosundaki çalışan adı bilgisini tutan kolon tipinde bir veri tipi tanımlayabiliriz.Örneğin;
calisan_ismi employees.FIRST_NAME%TYPE

declare
v_ename employee.first_Name%TYPE;
v_emp_rec employee%ROWTYPE;
begin
v_ename := 'MURAT';
v_emp_rec.first_Name := 'ALİ';
end;
/
  • Eğer bir değişkene değer atanmazsa oracle bu değişkenin değerini null olarak görür.
SET ECHO ON
SET SERVEROUTPUT ON
DECLARE
test INTEGER;
BEGIN
   IF test IS NULL THEN
DBMS_OUTPUT.PUT_LINE(' TEST değişkeni null''dur ');
   END IF;
test := 1;
DBMS_OUTPUT.PUT_LINE('TEST = ' || TO_CHAR(test));
   IF test IS NOT NULL THEN
DBMS_OUTPUT.PUT_LINE('TEST değişkeni null değildir.');
   END IF;
END;
/
OUTPUT:
TEST degiskeni null'dur
TEST = 1
TEST degiskeni null degildir.
PL/SQL procedure successfully completed.

Kaynakça:
  • Learning Oracle PL/SQL ,Bill Pribyl&Steven Feuerstein
  • Oracle PL/SQL Programming Steven Feuerstein with Bill Pribly

  • http://www.ceturk.com/oracle-veritabanina-kusbakisi/
  • http://www.ceturk.com/plsql-blok-yapilariveri-tipleri/
  • http://www.java2s.com/Tutorial/Oracle/0420__PL-SQL-Data-Types/BlockStructure.htm

  • http://datawarehouse.gen.tr/Makale.aspx?ID=443&seo=plsql-yazi-dizisi2  

27 Ekim 2011 Perşembe

Oracle 11 G Kurulumu

Oracle veritabanı kurulumu yapmak için oracle versiyonlarına ait kurulum CD'leri veya dosyalarına ihtiyacımız olacaktır.Çeşitli versiyonlara ait kurulum dosyalarına http://www.oracle.com adresinden indirebilirsiniz.Ancak indirme yapabilmeniz için OTN(Oracle Tecnology Network) üyeliğiniz gerekir.Üyelik ücresizdir.

Oracle Universal Installer (OUI)
Oracle Universal Installer (OUI), Oracle'ın CD'den ya da web'den kurulumlarını yapılması için kulladığı java tabanlı bir programdır.Kurulum java yer alan her platformda çalışır.
OUI Sistem Gereksinimleri
  • Java Çalıştıma Ortamı(JRE): Bir çok platformda OUI ile birlikte otomatik olarak kurulmaktadır.İsternilirse http://java.sun.con adresinden indirebilir.
  • Bellek İhtiyaçları: Kurulacak bileşen sayısına göre bellek ihtiyacı değişmektedir.Genelde tüm sistemerlede 32 MB önerilmektedir.
  • Disk Alanı İhtiyaçları: Windows platformunda Oracle Universal Installer için en en azından 60 MB ihtiyaç vardır.
    Oracle 11G Kurulumu
Oracle Windows 7 işletim sistemi için iki farklı şekile kurumunu gösteceğim:
 
1.Oracle Veri Tabanın oluşurarak
2.Sadece Veri tabanı yazılımını kurarak

Eğer siz Oracle Veri tabanını yeni tanışıyorsanız ilk seçeneği kurun.İkinci seçenekte ise veri tabanın yazılımını yükleyerek , Database Configuration sayesinde veri tabanı oluşturma, dinleyeci ayarları yaparak bir web sunucu, şirket veritabanı, vb. bir dev veritabanına sahip olabileceğiz.

1.Oracle 10g Veritabanı Kurulumu

Yazılımın bulunduğu klasörde setup tıkladığınızda ms-dos penceresi açılıp bi kaç işlem yaparak sistem uyumluluğunu test edecek, daha sonra da aşağıdaki ekranla karşılaşacağız.
bu ekran çıkacak.E-mail adresimi giriyoruz.Oracle Destek üzerinden güvenlik güncellemelerini istersek oracle kullandığımız şifreyi girebiliriz.Tabi bu isteğe bağlı.İsterseniz seçimi kaldırabilirsiniz.

Next seçeneği ile bir sonraki ekrana geçiyoruz… 

  
Create and configure a database işaretliyoruz.
İleri seçeneği ile bir sonraki ekrana geçiyoruz…


 
Desktop Class seçiyoruz.Bize başlangıç bir database ve minimum işlem ayarlamaları içerir.
İleri seçeneği ile bir sonraki ekrana geçiyoruz…


Oracle Veritabanın kurulacağı uzantılarda boşluk olmamalı ve şifre ise 8 karakter uzunluğunda olmalı.Büyük harf, küçük harf ve rakam içermelidir.

Next seçeneği ile bir sonraki ekrana geçiyoruz…


Önceden gerekli olan kontrolleri yapıyor...
Bittiğinde ileri seçeneği ile bir sonraki ekrana geçiyoruz…

 
Özet olarak yükenecek dosyaları gösteriyor.
Bitir seçeneğine ile bir sonraki ekrana geçiyoruz…



Kurulum devam ederken Windows işletim sistemi bizden erişim izni isteyecektir.İzin vererek kuruluma devam ediyoruz...


 
Kurulum bittiğinde bitir seçeneğine tıklıyoruz.


 
Oracle 11G Veritabanımız kurrulmuş oldu.Burada bilgileri bir kenara not alırsak iyi olur.İnsanız ya belki unutbiliriz sonra :). 


Sistemimize Yüklendiğini Görüyoruz.


  Services.msc de olan servislerde çalıştığını görüyoruz.


  Task Manager yani görev yöneticisinde ondan fazla çalışan uygulama göremiyoruz :).O kadar olacak koskocaman veritabanı kurduk :).

Şimdi de Sadece Oracle Veritabanı Yazılımı Kuralım.

 
2.Sadece Veritabanı yazılımını Kurma

Yazılımın bulunduğu klasörde setup tıkladığınızda ms-dos penceresi açılıp bi kaç işlem yaparak sistem uyumluluğunu test edecek, daha sonra da email girerek Next seçeneğine ile bir sonraki ekrana geçiyoruz… 

 

Install database software only sekmesini seçip,
Next seçeneğine ile bir sonraki ekrana geçiyoruz…

 
Single Instance Database Installation seçiyoruz.
Next seçeneğine ile bir sonraki ekrana geçiyoruz…

 
Tükçe dilini de ekliyoruz.
Next seçeneğine ile bir sonraki ekrana geçiyoruz…


 
Gelen ekranımızdan enterprise edition seçimini yapalım… ve next ile sonraki ekrana geçelim …
Gelen ekrandan herhangi bir ayarı değiştirmeden devam edelim … (C sürücüsünde yer yoksa D,E,F kullanılabilir.)



Kurulacak olan ayarları ve bilgiler özet halinde görüyoruz.
ve Finish ile bitirelim ve Oracle veritabanını yazılımını kurmaya başlayalım.


Ve bitti çok şükür :).İnternette dolanırken zamanın nasıl geçtiğinin farkına varamadım :).
 
Database Configuration Assistant ile Veritabanı Oluşturma

Başlat → Oracle- OraDb11g_home1 → Configuration and Migration Tools → Database Configuration Assistant tıklıyoruz.



 
 ve next ile sonraki ekrana geçelim …

Create Database seçeneğini işaretliyoruz.
ve next ile sonraki ekrana geçelim …


  İşaretli olan General Purpose or Transaction Processing dokunmuyoruz..
ve next ile sonraki ekrana geçelim …


 
Global Database Name : ORCL ve SID : ORCL yazalım.
ve next ile sonraki ekrana geçelim …


 
Next Seçeğine tıkladığımızda bize uyarı verdi.Bu işlemi gerçekleştirmeden önce bir dinleyiciye ihtiyacımız var.Şimdilik bu sayfayı Böyle bırakıp Başlat -> Oracle-OracDb11G_home1-> Configuration and Migration-> Oracle Net Configuration Assistant'ı çalıştırıyoruz.


Listener Configuration seçiyoruz...
ve next ile sonraki ekrana geçelim …

Add seçiyoruz.
ve next ile sonraki ekrana geçelim …


Listener name: LISTENER olarak yazıyoruz..
ve next ile sonraki ekrana geçelim …


TCP Protoklünü ekli halde gelir.Aynen bu şekilde next ile sonraki ekrana geçelim …


  Standart Port Numarası 1521'dir.Değiştirmeden devam edelim...

 
Windows Security Alert bizi uyarıyor kurduğumuz program hakkında.Private networks, such as my home or work home işaretliyoruz.Allow Access tıklıyoruz.


  Şimdilik bir başka dinleyici eklemeye gerek yok.Aynen next ile bir sonraki ekrana geçiyoruz...

 
Next ile bitiriyoruz.Listener yani dinleyici ayarlarımızı bitirdik.Tekrardan Database Configuration Assistant'a kaldığımız yere dönüyoruz.








Oracle için Password oluşturuyoruz.Bu password büyük harf, küçük harf ve rakam içermeli ve 8 karakter uzunluğunda olmalıdır.
Next diyerek sonraki ekrana geçelim...


 
File Location Variables dosyaların değerlerini görebiliriz.
Next ile diğer ekrana geçelim... 

 
Specify Flashback Recovery Area seçelim.Area Size ise 3852 olarak atayalım.
Next ile bir sonraki ekrana geçelim....

Sample Schemas işaretleyelim...
Next ile bir sonraki ekrana geçelim....



Typical işaretleyerek SGA ve PGA Memory Size 818 MB atamak bize yeterli olacaktır.

 
Tab üzerinde bulununa Connection Modu Dedicated Server Mode olarak ayarlayalım.
Aşağıdaki ekran gelene kadar Next tıklayalım.Aşağıdaki ekrana gelene kadar DataFiles, Control Files ve Redo Log Files ile ilgili ekranlar vardır.Okuyarak geçmenizde fayda vardır.


 
Şekilde gibi işaretler secip Name ve Description bölümlerini dolduruyoruz.
Next ile bir sonraki ekrana geçiyoruz...


Burada özet bilgiler database kurulum ve ayar ile ilgili.Html olarak kaydetmeniz faydalı olacaktır.Unutmamanız için.
Ok basarak devam ediyoruz ve Kuruluma başlıyoruz.Biraz uzun sürebilir.


Ve Oracle Databas 11G Release 2 kurmuş bulunuyoruz.Database Adı:ORCL, SID=ORCL ve URL miz ise: https://makineAdı:1158/em giriş yapabiliriz.Biliyoruz Çok uzun ve ama bir o kadar da kolar makale oldu.Umarım çok işimize yarayacak.Sonraki derslerimde görüşmek dileğiyle Selamun Aleykum....