Odi Procedure

Merhaba Arkadaşlar, Bu yazımızda Odi içerisinde bulunan Procedure kısmından bahsedeceğiz.

Odi Procedureler oldukça kullanışlı ve basit.

Proje altından Procedure sağ tıklayıp new procedure diyip yeni bir procedure oluşturuyorum.

Definiton: İsim ve teknoloji tanımlıyoruz.(oracle db kullandığımızdan target technology oracle seçtik.)

Details: Burada asıl procedure oluşturuyoruz. Procedureleri bir kaç adımdan oluşturabiliyoruz. + ile ekleyip 1 adet sizin için oluşturuyorum.

Burada context seçimi yaparsanız, Diğer ortamlara taşıdığınız senaryonuz başka context seçerek çalışmayacaktır. Bu yüzden seçim yapmamanızı tavsiye ederim.

Aşağıda karşılaştığım bir sorunun örneğini paylaştım. Oracle Db üzerinde oluşturduğum bir proceduru Odi procedure içinde çağırdım fakat bir türlü istediğim şekilde çalışmadı. Sonra farkettimki Odi içerisindeki tarih ile benim gönderdiğim tarih farklı. Bu nedenle procedurenin çalışacağı sessiona date formatı tanımladım.

odi procedure

begin
Execute immediate ‘alter session set nls_date_format=”dd/mm/yyyy”’;
DSD.ABONE(to_char(sysdate,’dd/mm/yyyy’));
end;

Procedureleri direkt de bir Dml işlemi içinde kullanabiliriz.

create table caner as select 1 num from dual;

Caner adında bir tablo oluşturuyorum.

Odi procedure içerisinde begin end; bloğu arasına insert cümleciğimi ekleyip çalıştırıyorum.

begin
insert into caner select 15 from dual;
end;

proc insert

select.PNG

Yukarıda gördüğünüz gibi tabloya 15 kaydı yansımış. Daha kompleks işlemler içinde bunu kullanabilirsiniz. Gerçekten Odi procedureleri çok acil durumlarda imdadınıza yetişebilir.

Herkese  İyi Çalışmalar,

Sorularınız varsa direkt e-mai atabilirsiniz.

Oracle Sql 19: Set Operatörleri( Union,Union All, Intersect,Minus)

Tags

, , , , , , ,

Merhaba Arkadaşlar,2013 bitmeden  bu konuyu yazmak istedim. Bu yazımızda set operatörlerinden bahsedeceğiz. Set operatörleri 4 tanedir. Bunlar: Union, Union All, Intersect ve Minus operatörleridir. Bu operatörleri neden kullanmak istiyebiliriz ?sorusunun bir çok cevabı var. Bir kaç örnek vereyim. Mesela bir operasyon yaptınız ve bir tablonun aynısından bir tane daha oluşturduğunuzu düşünüyorsunuz. Böyle bir durumda bunu kontrol etmek için Minus operatörünü kullanabiliriz veya iki tablo arasındaki ortak alanları(aynı veri) merak ediyorsak(Buna kesişimleri diyebiliriz) Intersect operatörünü kullanırız veya iki tabloyu bir arada rapor etmek istiyorsak Union operatörünü kullanabiliriz. Aşağıda A ve B tablosu düşünülerek hazırlanmış bir görüntü paylaşıyorum. Bu arada sağ üstteki Union All operatörünü gösteren şekildeki orta alan raporlarken 2 kez tekrar ediyor diye biraz daha beyazlaşmış, şekillerde gri alanlar sorgudan dönecek kısmı temsil ediyor. Continue reading

Oracle Sql 16: Having

Tags

, , , ,

Merhaba Arkadaşlar, Bu yazımızda Having kullanımından bahsedeceğiz. Data çokluyor mu diye bakmak için çok kullanır.Having Group by ile order by arasında kullanılır.Having kullanımını göstermeden  önce bazı hatırlatmalar yapmak istiyorum. Where koşulunu anlatırken şunu söylemiştik grup fonksiyonları ile birlikte kullanılamaz. Bu bir grup fonksiyonu kullandığımız sorguda where kullanılamaz demek değil tabikide. Burada anlatmaya çalıştığım where ile bir koşul belirtirken bir gruba yönelik koşul belirtemezsiniz. Örnek olarak,ortalama maaşı 5 binden büyük olan departmanları görüntülemek istediğimizde Ortalama( AVG) grup fonksiyonunu where ile kullanamayız. Continue reading

Oracle DBA 2: Veritabanı Kapanma Yöntemleri (Shutdown Abort, Normal, Immediate, Transactional)

Tags

, , , ,

Merhaba Arkadaşlar, Önceki yazımızda veritabanı açılış modlarından bahsetmiştik şimdi yazımızda veritabanı kapanış methodlarından bahsedeceğiz. Oracle veritabanını Shutdown Abort,Shutdown Normal,Shutdown Immediate ve Shutdown Transactional diyerek kapatabiliriz. Bu yazımızda bunlar arasındaki farklar nedir ? Hangisini nerelerde kullanmalıyız ? ve etkileri neler olur ? gibi soruların cevaplarını bulacağız. Veritabanı kapatma yöntemlerini tek tek anlatmadan önce şunu söylemeliyimki veritabanını tutarsız bir şekilde kapatan tek yöntem shutdown abortdur.  Continue reading

Oracle DBA 1: Veritabanı Açılma Modları(Nomount, Mount, Open)

Tags

, , , , ,

Merhaba Arkadaşlar, Bu yazımızda Oracle veritabanı ile alakalı olarak veritabanı açılış modlarını inceleyeceğiz. Oracle’da veritabanı belirli aşamaları geçerek açılır, eğer bu aşamaların herhangi birinde bir eksik yada hatalı durum varsa veritabanı o moddan bir üst moda geçemeyecektir.Burada mantık şudur örneğin database mount moduna geçemiyordur.Biz nomountta veritabanını açarız eksik olan dosyaları tamamlayıp(onlarla alakalı olacak şekilde ilerleyen zamanlarda yazılarımız olacak) veritabanımızın açılmasını sağlarız.Bir veritabanı kapalı(Shutdown) modda iken sırasıyla Nomount ve Mount modlarını geçerek Açık(open) moda geçer.Bu yapı merdiven gibidir. Continue reading

Oracle Mimarisi 3: Mantıksal ve Fiziksel Depolama Yapısı(Logical and Physical Database Structures)

Tags

, , , , , , , , , , , , , ,

Merhaba Arkadaşlar,Oracle Veritabanı depolama yapısı fiziksel ve mantıksal olarak iki yapıdan oluşur.Oracle’ın Fiziksel Yapısını Control,Data,Online Redo log, Parameter, Backup, Archived redo log, Password, Alert log and trace (files) gibi dosyalarımız oluşturur. Bu dosyaların her biri ayrıca incelenmeli ve öğrenilmelidir. Hatta bu dosyalardan Control files,Data files ve Online redo log files dosyaları Database’imiz için olmazsa olmaz dosyalardandır.Bu yazımızda bu dosyalardan kısaca bahsedeceğiz ilerleyen yazılarda ‘da bu dosyaların her birini özel bir konu olarak ele alıp uçtan uca inceleyeceğiz.Bununla birlikte bu yazımızda Oracle’daki diğer depolama yapısı olan Mantıksal Depolama Yapısını(Logical Storage Structure) inceleyeceğiz.

Control Files: Control dosyalarımızdan(files) herhangi birini kaybetmemiz durumunda veritabanımız kullanılamaz hale gelir.Control dosyalarında, veritabanımızın adı,veri dosyalarının isimleri ve yerleri,online redo log dosyalarının isimleri ve yerleri, checkpoint bilgisi, Rman yedek dosyalarının isimleri ve yerleri,archive log dosyalarının sıra numaraları yer alır. Continue reading

Oracle Mimarisi 2: User Process, Server Process ve Background Processler

Tags

, , , , , , , , , , , , ,

Merhaba Arkadaşlar, Bu yazımızda Oracle Veritabanı yapısında Process yapılarından bahsecedeğiz. Bu yazımızı daha iyi anlamanız için Memory yapısından bahsettiğimiz yazıya bakmanızı tavsiye ederim.Oracle DB ‘de bulunan üç çeşit process yapısını bu yazımızda sırayla inceleyeceğiz.Bunlar: Client Process(User İşlemleri), Server Process (Sunucu İşlemleri) ve Background Process(Arka Plan işlemleri). Burada User Process ve Oracle Veritabanı Processes diye gruplayabiliriz.Oracle Veritabanı Processleri  Server Process ve Background Processdir.

Client Process(User İşlemleri)

Bir User(kullanıcı) bir uygulama veya bir tool aracılığı ile Oracle veritabanına bağlandığında, bu kullanıcı için Client(User) Process başlatılır.Client(User) Process SGA alanına okuma ve yazma yapamaz.Client Process, Oracle Veritabanı Processlerinin aksine veritabanın çalıştığı serverın dışında bir serverda’da çalışabilir. Continue reading

Oracle Oracle Mimarisi 1: Memory Yapısında SGA ve PGA Alanları

Tags

, , , , ,

Merhaba Arkadaşlar, Bu yazımızda Oracle veritabanı mimarisinde Memory yapısından bahsedeceğim.Oracle veri tabanı RDBMS ilişkisel veritabanıdır. İlişkisel veritabanı Primary ve Foreign key alanları ile tabloları ilişkilendiren veritabanlarıdır. Oracle’da verilerimizi saklayabileceğimiz iki veritabanı tipi vardır. OLTP(Online transaction processing) ve DWH(Data warehouse ).OLTP’de sürekli transaction(insert,update,delete) işlemleri yapılır. Küçük tablolar kullanılır. Tablolar arası ilişkiler çok fazladır.OLTP ye örnek olarak ATM sistemlerini gösterebiliriz.DWH ‘da raporlama üzerine kuruludur.Neredeyse Transaction yapılmaz.Büyük tablolar kullanılır(Daha çok sorgu yapıldığı için) .Oracle veritabanı mimarisi üç yapıdan oluşur. Bellek yapısı(Memory), İşlemler(Processes) ve Depolama yapısı(Storage).

Continue reading

Oracle Sql 15: Group By

Tags

, , , , ,

Merhaba Arkadaşlar,Bu yazımızda Group By ifadesinden bahsedeceğiz.Group By ifadesini tablomuzdaki satırları küçük gruplara bölmek için kullanırız.Mesela Departmanlarımızın olduğu bir kolonu düşünelim, 4 farklı verimiz olsun,Group By Department dersek 4 farklı grup ekrana monitör edilir. Group By Sql Sorgusunda where şartından sonra kullanılır.Order By sıralamasından önce kullanılır.Genelde Grup fonksiyonlarıyla kullanılır,Grup fonksiyonları bir kolondaki verileri bir işleme sokarak bir değer döndürür.Grup By kullanırken şuna dikkat etmeliyiz;Sorgunun başında Select‘den sonra belirttiğimiz gruplanacak kolonlar mutlaka Group By ifadesiyle birlikte yer almalıdır. Continue reading

Oracle Sql 14: Grup Fonksiyonları(Avg,Count,Max, Min,Sum)

Tags

, , , , , ,

Merhaba Arkadaşlar, Bu yazımızda grup fonksiyonlarından bahsedeceğiz.Bu fonksiyonlar Avg(ortalama),Count(sayma),Max(maximum),Min(minimum), Sum(toplam). Oracle veritabanında bu fonksiyonlar sayesinde bazı işlemleri çok daha rahat yapacağız. Mesela maaşların tutulu olduğu bir kolona gidip en yüksek maaşı alan çalışanı max fonksiyonu ile görüntüleyebiliriz. Yada şirketimizde çalışanların aldığı ortalama maaşı avg fonksiyonu ile görebiliriz. Bu gibi işlemleri tek bir ifade kullanarak yapacağız.Grup fonksiyonları  tek satır fonksiyonlarından farklı olarak bir den çok satır alıp bir tane sonuç dönderen fonksiyonlardır. Grup fonksiyonlarını tek satır fonksiyonlarında olduğu gibi where  ile birlikte kullanamayız,Having ile birlikte kullanılır. Grup fonksiyonları null değerleri göz ardı eder ve null değer döndürmezler. Continue reading