PL SQL ASAL SAYILAR

PL SQL de asal sayıları bulmak için aşağıdaki kodu kullanabilirsiniz.

Kodu kabaca anlatmak gerekirse. 1’den 1000’e kadar olan tüm sayıları üretip with as ile all_numbers’ı oluşturdum.
ALL_NUMBERS’ı cartezyen (cross) join yaptım. Böylece her sayıyı, bölen başka bir sayı var mı diye kontroınl ettim.
1 sayısı her sayıya tam olarak bölündüğü için ve her sayı kendisine tam olarak bölündüğü için bunları küme dışında bıraktım.
2 sayının birbirine bölümü tam sayı ise ( roundlu hali ve roundsuz hali birbirine eşit ise) 0 dedim.

Continue reading

PL SQL Dinamik Olarak Ay Çeyrek Yıl Başı Sonu Bulunması

oracle pl sql’de ay başı ay sonu çeyrek başı çeyrek sonu önceki çeyrek önceki çeyrek başı önceki çeyrek son günü v.s. gibi çok kullanılan sql ifadelerini aşağıya ekledim.
Trunc, add_months, last_day, trunc(,”) fonksiyonlarını kullanarak aşağıdaki gibi ilgili tarihleri getirdim.

AY

ay başı ay sonu

önceki ay, sonraki ay, ayın son günü, ayın ilk günü

SELECT sysdate as su_an,    --şu an 
       trunc(sysdate,'Q') as ceyrek_basi,   --çeyrek başı
       add_months(trunc(sysdate,'Q'),-3) as onceki_ceyrek_basi, --önceki çeyreğin başı
       add_months(trunc(sysdate,'Q'),+3) as sonraki_ceyrek_basi,    --sonraki çeyreğin başı
       add_months(trunc(sysdate,'Q'),+3)-1 as ceyrek_son_gunu,   --çeyrek sonu
       trunc(sysdate,'Q')-1 as onceki_ceyrek_son_gun    --önceki çeyrek son gün
  FROM sys.DUAL;

ÇEYREK

pl sql çeyrek dinamik

çeyrek başı, çeyrek son günü, önceki çeyrek, sonraki çeyrek

SELECT sysdate as su_an,    --şu an 
       trunc(sysdate,'MM') as ay_basi,  --ay başı
       trunc(sysdate,'Month') as ay_basi_,   --ay başı
       add_months(sysdate,-1) as bir_ay_once,    --bir ay önce
       last_day(sysdate) as bu_ayin_son_gunu,   --bu ayın son günü
       sysdate-30 as otuz_gun_once,  --add_months(sysdate,-1) den farklı sonuç verebilir.
       last_day(add_months(sysdate,-1) ) as gecen_ayin_son_gunu,  --onceki_ayin_son_gunu
       last_day(add_months(sysdate,-2) ) as iki_ay_once_ayin_son_gunu,  --2 ay önce ayın son günü
       trunc(add_months(sysdate,-3),'MM') as uc_ay_once_ayin_ilk_gunu   --üç ay önce ayın ilk günü 
  FROM sys.DUAL ;

YIL

pl sql yıl dinamik

yılın başı, yılın sonu

SELECT sysdate as su_an,    --şu an
       trunc(sysdate,'YYYY') bu_yilin_basi,
       add_months(trunc(sysdate,'YYYY'),+12)-1 bu_yilin_sonu,
       add_months(sysdate,-12) as gecen_sene, --1 yıl önce.
       trunc(add_months(sysdate,-12),'Year') as gecen_yil_ilk_gun, --geçen yılın ilk günü
       trunc(add_months(sysdate,-12),'YYYY') as gecen_yil_ilk_gun, --geçen yılın ilk günü, geçen yılın başı
       trunc(sysdate,'YYYY')-1 as bir_yil_once_son_gun, --geçen yılın son günü 
       trunc(add_months(sysdate,-12),'YYYY')-1 as iki_yil_once_son_gun --iki yıl önce son gün
  FROM sys.DUAL ;

CTAS NEDİR? Create Table AS

CTAS Nedir ? CTAS nasıl kullanılır?

CTAS ; Create Table AS yapısının kısaltılmış halidir. Kolay yoldan tablo oluşturmaya yarar. Genelde tablonun yedeğini almak için veya create script’inin kolayca oluşturulması için kullanılır.

CTAS yöntemi ile tablo oluşturulduğunda, partition, index, grant gibi objeler oluşmaz.

Örnek kullanım :

CREATE TABLE ornek_tablo AS
SELECT * FROM hr.EMPLOYEES

yukarıdaki sorgu ile hr.EMPLOYEES tablosunun verileri birebir aynı şekilde ornek_tablo ismi ile yeni bir tablo oluşturulur.

ctas

ctas

 

Oluşturulan yeni tabloya tekrar select atılırsa, birebir aynı sonucu ürettiği görülür.

ctas

ctas