Piyasada, özellikle web aleminde kullanılan en baba veritabanları, PHP abimiz için MySql, ASP dayımız için MsSql'dir.
Fakat çalıştığım yer gibi kurumlarda malesef Oracle amca kullanılmaktadır. Aslında; MySql ve MsSql genç yakışıklı delikanlılar ise Oracle göbekli fakat zengin bir iş adamıdır, programcılar için...
Oracle'nın bünyeye olan faydalarından bahsedip diğerleri ile kıyaslamak yanlış olacaktır. Oracle çok kayıtlı kurumlarda kullanımı iyidir, hızlıdır, hede höde vs.
Bunun yanında fakir fukaranın dostu MySql'de kendini çok geliştirdi. Ülkemizde hukuki gelişimden(!) mütevellit Amerikalı yazılım şirketleri MicroSoft, Oracle vb. devler kurumların kapısını çalmaya başladı ve yazılım ücretlerini tahsil etmeye başladı. Her şeyi kaçak göçek kullanan halkımız ve kurumlarımız bir anda neye uğradığını şaşırdı. Tabiki açık kaynak koduna geçmek windowsla ilerlemiş olan kurumlarda sıkıntılara yol açacaktır. Msn, solitarie vb. çok faydalı yazılımlara erişemeyen kurum çalışanları sebebiyle Pardus projesi de rafa kaldırıldı. Konu nerden nereye geldi, Oracle'da auto increment meselesini anlatacaktık demi la?!
Oracle'da auto increment yok kardeşim!... şaşırdınız değil mi? Mysql'de olan Limit de yok bu tür basit işlemler için bile sequence ve trigger oluşturmanız gerekli. Bunlar içinde ek kodlar yazmanız gerekmekte. Binlerce dolar vererek aldığınız veritabanında basit işler bile el yordamıyla manuel olarak yapılıyor.
Nasıl yapılır?!
Efendim bu Oracle tablolarını yönetmenin en iyi yolu Pl/Sql manager diye bir program. Aşağıdaki resimde ekran görüntüsü mevcut (makale okuya okuya iyice makale formatına bağladık, bkz. aşağı gibi :D ) Pl/Sql ' i internetten ortamından crackli olarak indirip kurabilirsiniz.
Pl/Sql
Efendim soldaki ağac menuden Sequence seçelim ve gelen pencereyi aşağıdaki gibi yapalım. Max- min değerler artış değerlerini belirleyelim.
Ben coderım (kodırım), kod yazmadan rahat edemem derseniz, ahanda sql benzeri kodları burada;
create or replace sequence SEQ_YAYIN
minvalue 1
maxvalue 999999999999999999999999999
start with 1
increment by 1
cache 20;
Bu işlemi gerçekleştirdikten sonra Trigger bölümünde artışı onaylamamız lazım. Yani her data girişte tetikleyip, alanı artıracağız.
Kodları da verelimde, psikopatlar rahat etsin;
create or replace trigger TRG_YAYIN
before insert on haber
for each row
begin
select SEQ_YAYIN.nextval into :new.YAYIN_ID from dual;
end TRG_YAYIN;
Evet işte böyle Oracle ile olan boğuşma yeni başlıyor :D
Gaptanın Seyir Defteri
Uz. M. Yasin ÖZSAĞLAM