Kayıtlar

Mart, 2017 tarihine ait yayınlar gösteriliyor

PL/SQL Ders16 - Trigger

Resim
   Trigger aha önce belirtilmiş bir olay meydana geldiğinde tetiklenen birimdir. Trigger veritabanında saklanır ve belirtilmiş bir koşul meydana geldiğinde tetiklenir. Trigger aşağıdaki olaylar meydana geldiğinde tetiklenebilir. Veritabanı manipulation (DML) : DELETE, INSERT, UPDATE. Veritabanı definiyion (DDL) : CREATE, ALTER, DROP. Veritabanı operation : SERVERERROR, LOGON, LOGOFF, STARTUP, SHUTDOWN. CREATE OR REPLACE TRIGGER triggerIsmi; BEFORE , AFTER veya INSTEAD OF INSERT , UPDATE veya DELETE OF kolonIsmi ON tabloIsmi FOR EACH ROW WHEN kosul DECLARE .. BEGIN .. END ; CREATE OR RAPLACE :  trigger tanımlamayı veya varolan bir triggerı güncellemeyi sağlar. BEFORE, AFTER veya INSTEAD OF :  Trigggerın ne zaman çalıştırılacağını belirtir. INSERT, UPDATE veya DELETE :  DML operasyonları OF :  Güncellenecek kolon ismini belirtir. ON :  Güncellenecek tabloyu belirtir. OLD AS, NEW AS :  Çeşitli DML ifadeleri için yeni ve eski değerleri atamanızı sağ

PL/SQL Ders15 - Exception

Resim
   PL/SQL'de 2 tip exception (istisna) vardır. Bunlar Sistem tabanlı exception Kullanıcı tabanlı exception DECLARE .... BEGIN .... EXCEPTION WHEN ..... THEN .......... WHEN ..... THEN .......... END; Worksheet15.sql DECLARE p_id test_personel . id%TYPE; BEGIN SELECT id INTO p_id FROM test_personel WHERE ad = 'enes22' ; DBMS_OUTPUT . put_line (p_id); EXCEPTION WHEN NO_DATA_FOUND THEN DBMS_OUTPUT . put_line ( 'veri bulunamadi..' ); WHEN OTHERS THEN DBMS_OUTPUT . put_line ( 'bir hata var..' ); END ; Raising Exceptions (Kullanıcı Tabanlı) Istisnalar veri tabanında dahili bir hata meydana geldiğinde otomatik olarak oluşturulur. Fakat programcı tarafından RAISE komutuyla da explicit (açık) bir şekilde istisna tanımlanabilir. Bir istisna tanımlamasını ve o istisnanın meydana gelmesi durumda yapılacakları gösteren genel kod bloğu aşğıdaki gibidir.

PL/SQL Ders14 - Cursor

Resim
   SQL ifadesi işlendiğinde Oracle context area denilen bir bellek bölgesi oluşturur. Bir cursor işte bu bellek bölgesine işaret eder. Cursor ifadenin işlenmesi için gerekli tüm bilgileri içerir. PL/SQL'de context area, cursor tarafından kontrol edilir. Cursor veri satırlarını ve select ifadeleri üzerindeki bilgileri içerir. Bir cursor SQL ifadeleri ile döndürülen saturları işlemek , fetch etmek (getirmek) için kullanılır. İki tip cursor vardır. Implicit Cursor (örtülü) Explicit Cursor (açık) Implicit Cursor (örtülü) Implicit Cursor (örtülü) Oracle tarafından  SQL ifade çalıştırıldığında eğer explicit cursor (açık) kullanılmıyorsa otomatik olarak oluşturulur. INSERT, UPDATE, DELETE gibi DML ifadeleri çalıştırıldığında Oracle tarafından oluşturulan attributeler şunlardır. %FOUND : Eğer DML ifadelerinden oluşturulan komutlardan etkilenen bir satır varsa veya select ifadelerinden oluşturulan komutlardan geriye dönen en az bir satır varsa geriye true dönd

PL/SQL Ders13 - Function

Resim
   PL/SQL'de fonksiyonlar (function) prosedürlere (procedure) çok benzemektedir. Fonksiyonlar da bir veya daha fazla görevi icra edecek yapılar olarak tanımlanabilir. Fonksiyonlar ile prosedürler arasındaki fark ise fonksiyonlar her zaman geriye bir değer döndürmek zorundadır. Prosedürlerde ise bu zorunluluk yoktur. Function oluşturma CREATE FUNCTION  "functionIsmi"  (varsa parametreler,..) RETURN donusTipi; IS declaration kısmı BEGIN execution kısmı RETURN deger; END; CREATE  yerine  REPLACE  anahtar kelimesi ile var olan bir function güncellenebilir. Function silme DROP  FUNCTION   procedureIsmi; Function13.sql CREATE OR REPLACE FUNCTION dortgen (satir IN INT, sutun IN INT) RETURN INT IS yildizSayisi INT; BEGIN FOR i IN 1 .. satir LOOP FOR j IN 1 .. sutun LOOP dbms_output . put( '*' ); END LOOP ; dbms_output . put( ' ' ||chr( 10 )); END LOOP ;

PL/SQL Ders12 - Procedure

Resim
   PL/SQL'de bir veya daha fazla görevi icra edecek yapılara procedure denir. Procedure header ve body olmak üzere iki kısımdan meydana gelir. Header kısmında procedure ismi, procedure parametreleri bulunur. Body kısmında genel PL/SQL bloklarına benzer olarak declaratin kısmı, execution kısmı ve exception handling kısmı bulunur. Yani yapılacak iş burada belirtilir. Bir procedure oluşturmak isterseniz bu procedure geçirilecek parametreleri tanımlamak zorundasınızdır. Bir procedurede 3 tip parametre bulunur. IN parametreleri procedure tarafından işleme sokulacak parametrelerdir. Procedure dışında kullanılamaz. OUT parametreleri  procedure tarafından işlem sonucundan elde edilecek parametrelerdir. Procedure dışında kullanılabilir. INOUT parametreleri  procedure tarafından işleme sokulup değeri değişebilecek parametrelerdir. Procedure dışında kullanılabilir. Procedure oluşturma CREATE PROCEDURE "procedureIsmi" (varsa parametreler,..) IS declaratio

PL/SQL Ders11 - GOTO Deyimi

Resim
   PL/SQL'de GOTO deyimi kod satırları arasında atlama yapmak için kullanılır. GOTO deyimi ile daha önce tanımlanan LABEL'e atlanır. ... << a >> ... GOTO a; ... GOTO Deyiminin Kısıtlamaları GOTO  deyimiyle bir IF koşulunun, CASE durumunun, LOOP ifadelerinin veya alt blokların içine atlayamazsınız. GOTO  deyimiyle bir  IF   koşulunun içinden diğer bir  IF   koşulunun içine atlayamazsınız. Aynı koşul  CASE  durumunda WHEN' ler arasında da yapılamaz. GOTO  deyimiyle bir dış bloktan iç bloka atlayamazsınız. GOTO  deyimiyle bir alt programdan çıkmak için atlama yapılamaz. GOTO  deyimiyle exception handler içine atlayamazsınız. Worksheet11.sql DECLARE i INT := 0 ; BEGIN <<test>> WHILE i < 100 LOOP i := i + 10 ; IF i = 80 THEN GOTO test; END IF ; DBMS_OUTPUT . put_line (i); END LOOP ; END ;

PL/SQL Ders10 - CONTINUE Deyimi

Resim
   PL/SQL'de  CONTINUE ifadesi bir döngü içerisinde kullanılır. Döngü içerisinde kullanılan  CONTINUE ifadesi  CONTINUE 'nun altında kalan satırlar icra edilmeden bir sonraki iterasyona geçilmesini sağlar. ... CONTINUE; ...    Örneğin aşağıdaki programdaki döngü 1'den 10'a kadar yazdıracak şekilde ayarlanmıştır. Fakat 7 sayısı yazdırılacakken CONTINUE deyimiyle 7 yazdırılmadan diğer iterasyona geçilmesi sağlanmıştır. Ayrıca 3 ile 5 arasındaki sayılar ikinci IF koşulu ile ikişer kez yazdırılacaktır. Worksheet10.sql DECLARE BEGIN FOR i IN 1..10 LOOP IF i= 7 THEN continue ; ELSIF i BETWEEN 3 AND 5 THEN dbms_output . put_line(i|| ' ' || i); ELSE dbms_output . put_line(i); END IF ; END LOOP ; END ;

PL/SQL Ders09 - Döngüler | FOR

Resim
   PL/SQL'de FOR döngüsü şu şekilde tanımlanır. FOR  değişken IN başlangıçDegeri .. bitişDegeri LOOP koşul doğru olduğu sürece çalışacak ifadeler END LOOP; Worksheet09.sql DECLARE BEGIN FOR a in 1..10 LOOP dbms_output . put_line(a); END LOOP ; END ;

PL/SQL Ders08 - Döngüler | WHILE

Resim
   PL/SQL'de WHILE döngüsü şu şekilde tanımlanır. WHILE koşul LOOP koşul doğru olduğu sürece çalışacak ifadeler END LOOP; Worksheet08.sql DECLARE a int:= 1 ; BEGIN WHILE a<= 10 LOOP dbms_output . put_line(a); a:=a+ 1 ; END LOOP ; END ;

PL/SQL Ders07 - Döngüler | EXIT

Resim
   PL/SQL'de bir ifadenin bir veya birden fazla olarak çalışması döngülerle sağlanır.  PL/SQL'de yer alan döngüler 3 tanedir. Bunlar ; EXIT WHILE FOR Bu derste EXIT dongusunu işleyeceğiz.  EXIT döngüsünün söz dizimi aşağıdaki gibidir. LOOP EXIT koşul koşul yanlış olduğu sürece çalışacak ifadeler END LOOP; Bir örnek program yapalım. Worksheet07.sql DECLARE i int := 1 ; BEGIN LOOP EXIT WHEN i> 10 ; dbms_output . put_line(i); i:=i+ 1 ; END LOOP ; END ;

PL/SQL Ders06 - Kontrol İfadeleri | CASE

Resim
   Case ifadesi If ifadesine benzer şekilde çalışır. İkisi de belli bir koşula göre bir komutun çalışıp çalışmayacağını belirler. Aşağıda Case kontrol ifadesinin genel yapısı gösterilmiştir. CASE ifade WHEN  koşul1 THEN sonuc1; WHEN  koşul2 THEN  sonuc2; .... WHEN  koşuln THEN  sonucn; ELSE  sonuc; END; Worksheet6.sql DECLARE a int:= 3 ; BEGIN CASE a WHEN 1 THEN dbms_output . put_line( 'a 1dir.' ); WHEN 2 THEN dbms_output . put_line( 'a 2dir.' ); WHEN 3 THEN dbms_output . put_line( 'a 3tür.' ); ELSE dbms_output . put_line( 'a 1,2,3 sayilarindan biri degildir.' ); END CASE ; END ;

PL/SQL Ders05 - Kontrol İfadeleri | IF

Resim
   Bir komutun çalışıp çalışmayacağı IF kontrol ifadesiyle belirlenebilir. PL/SQL'de bir IF kontrol ifadesi aşağıdaki şekillerde oluşturulabilir. IF koşul THEN     koşul doğru olduğunda çalışacaklar END IF; IF  koşul THEN      koşul doğru olduğunda çalışacaklar ELSE     koşul yanlış olduğunda çalışacaklar END IF; IF  koşul1  THEN      koşul2 doğru olduğunda çalışacaklar ELSIF koşul2 THEN     koşul1 yanlış olup, koşul2 doğru olduğunda çalışacaklar END IF; IF  koşul1  THEN      koşul2 doğru olduğunda çalışacaklar ELSIF  koşul2 THEN     koşul1 yanlış olup, koşul2 doğru olduğunda çalışacaklar ELSE      koşul1 ve koşul2 yanlış olduğunda çalışacaklar END IF; Bunun ile ilgili basit bir örnek aşağıda verilmiştir. Worksheet05.sql DECLARE a int:= 22 ; BEGIN IF (a< 10 ) THEN dbms_output . put_line( 'a 10dan kucuktur.' ); ELSIF (a< 20 ) THEN dbms_output . put_line( 'a 20den kucu

PL/SQL Ders04 - Sabitler

Resim
   PL/SQL'de sabit (constant) değişkenler tanımlayıp bunları program boyunca değerinin değiştirilmesine izin verilmeden kullanabiliriz. Bir sabit aşağıdaki biçimde tanımlanır. degiskenIsmi  CONSTANT  veriTipi := deger; Örnek bir program aşağıda verilmiştir. Worksheet04.sql DECLARE pi CONSTANT NUMBER ( 5 , 4 ) := 3.1415 ; yaricap NUMBER ( 5 ) := 5 ; yay NUMBER ( 6 , 3 ); cevre NUMBER ( 6 , 3 ); alan NUMBER ( 6 , 3 ); BEGIN yay := 2 * pi; cevre := 2 * pi * yaricap; alan := pi * yaricap * yaricap; dbms_output . put_line ( 'PI : ' || pi|| CHR ( 10 ) || 'YARICAP : ' || yaricap|| CHR ( 10 ) || 'YAY : ' || yay|| CHR ( 10 ) || 'CEVRE : ' || cevre|| CHR ( 10 ) || 'ALAN : ' || alan|| CHR ( 10 )); END ;

PL/SQL Ders03 - Değişkenler

Resim
   PL/SQL'de yer alan temel değişken tipleri aşağıda listelenmiştir. Bir de bu değişken tiplerinin alt tipleri mevcuttur. Örneğin integer veri tipi number veri tipinin alt tipidir. Aynı şekilde string veri tipi varchar veri tipinin alt tipidir. Number (n,m) Char (n) Varchar2 (n) Date Long Long raw Raw Blob Clob Nclob Bfile Bir değişkenin tanımlanması aşağıdaki biçimde olur. degiskenIsmi veriTipi  NOT NULL  := deger; Ayrıca null olması zorunlu değildir. Null olabilen değişkenler tanımlanabilir.. degiskenIsmi veriTipi := deger; Bir değişkene yukarıdaki gibi ilk değer verileceği gibi şu şekilde de başlangıç değeri verilebilir. degiskenIsmi veriTipi DEFAULT deger; Değer kısmı opsiyoneldir. Default değer verilmeyebilir. degiskenIsmi veriTipi; Örneğin, maas adında number tipinde 6 haneli bir değişken tanımlamak istersek şöyle yapabiliriz. DECLARE maas number(6); .... Çıktı Üretimi PL/S

PL/SQL Ders02 - PL/SQL'in Avantajları

   PL/SQL'in avantajları aşağıda listelenmiştir. Blok Yapısı Prosedürel Dil Yetenekleri Daha İyi Performans Hata İşleme Blok Yapısı PL/SQL   kod bloklarından meydana gelir. Bu kod blokları kendi için yuvalanmış (nested) olabilir. Her blok belli bir görevi icra etmek veya mantıksal modülü gerçekleştirmek amaçlıdır. Prosedürel Dil Yetenekleri PL/SQL prosedürel dil yapılarından meydana gelir. Örneğin, for döngüsü. Daha İyi Performans PL/SQL çoklu SQL komutlarını aynı anda tek bir blok olarak işler ve böylece ağ trafiğini azaltır. Hata İşleme PL/SQL programdaki hataları etkin bir biçimde işler. Bir istisna yakaladığında istisnanın türüne göre belirli eylemler yapabilir veya kullanıcıya bir mesaj gösterebilir.

PL/SQL Ders01 - PL/SQL'e Giriş

Resim
     PL/SQL'in açılımı Procedurel Language / Structed Query Language'tir. Yani Türkçe olarak yapılandırılmış sorgu dilinin (sql) prosedürel uzantısı diyebiliriz. PL/SQL, Oracle tarafından geliştirilmiştir. PL/SQL kodları client-side veya server-sideda saklanabilir. Her PL/SQL programı PL/SQL bloklarından meydana gelir. Bu bloklar 3 kısıma ayrılır. Declaration Kısmı (Opsiyoneldir.) Execution Kısmı (Zorunludur.) Exception Handling Kısmı (Opsiyoneldir.) Declaration Kısmı (Opsiyonel) Bu kısım "DECLARE" anahtar kelimesi ile başlar. Programda declaration kısmının kullanılma zorunluluğu yoktur yani opsiyoneldir. Declaration kısmında değişkenler, sabitler, cursorlar ve recordlar bulunur. Execution Kısmı (Zorunlu)  Bu kısın "BEGIN" anahtar kelimesi ile başlar ve "END" anahtar kelimesi ile biter. Execution kısmı belli bir görevin gerçekleştirildiği kısımdır. Exception Handling Kısmı (Opsiyonel) Bu kısım "EXCEPTION"

Spring Ders21 - Aspect Oriented Programming - AspectJ Xml Configuration Style

Resim
   Spring'de Aspect Oriented Programmingi  .xml configuration (yapılandırma) dosyasında yapabilirsiniz. Bu  AspectJ Xml Configuration Style olarak adlandırılır. AspectJ anotasyon stilindeki tüm advicelar burada da desteklenir. aop:before  :   Before advice tanımlar. Metot çağrılmadan önce çalışır. aop:after      :   After advice tanımlar. Metot çağrıldıktan sonra çalışır. aop:after-returning  :   AfterReturning advice tanımlar. Metot return ettikten sonra çalışır. aop:around  :   Around advice tanımlar. Metot çağrılmadan önce ve sonra çalışır. aop:after-throwing  :   AfterThrowing advice tanımlar. Metot istisna (exception) attıktan sonra çalışır. aop:before Before advice tanımlar. Metot çağrılmadan önce çalışır. Main.java package test; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class Main { public static void main(String[] args) throws Exception { Applicati