Emrah AÇIKGÖZ'ün Kişisel Sahifesi.

Toad auto Replace

  • 4 sene önce, Emrah tarafından yazılmıştır.
  • 0 Yorum
  • Oracle

Toad kullanımı sırasında, sql query yazarken çoğu zaman benzer select cümleleri yazıyoruz. Mesela, select * from xxx  cümlesi en sık kullanılan cümlelerden bir tanesidir. İşte bu select’leri her seferinde tamamını yazmak yerine ilk bir yada iki harf(isteğe bağlı) yazarak gerisini otomatik tamamlayabiliriz.

Bunun için, Toad’da View -> Toad Option tıklıyoruz. Açılan yeni pencerede, Editor -> Behavior tıklıyoruz. Burda, sağ tarafta Auto Replace butonu görünür. Oraya tıkladığızda karşımıza liste çıkıyor. Burda yeni bir tane ekleyerek mesela se için, “select * from”  tanımlayabilirsiniz.. işlemi bitirdikten sonra, denemek için, sql editörde  se yazıp tab veya space tuşuna bastığımız zaman select * from çıkar..

toad_replace

 

Örnek :

emrah ->Enter;

select /*+ parallel (4) full(c) full(h) full(k) use_hash(c t)*/ * from

Oracle’da Tekrarlanan Kayıtları silmek

  • 4 sene önce, Emrah tarafından yazılmıştır.
  • 0 Yorum
  • Oracle

Oracle tablomuzda tekrar eden kayıtların silinmesi için aşağıdaki gibi bir kod yazmamız yeterli olacaktır.

Tablomuz 
ID ADI SOYADI
1 Ercan Mustafa
2 Ercan Mustafa
3 Kemal Ay
4 Hakan Yıldız
5 Enes Ak

DELETE FROM tablomuz tb
WHERE tb.rowid > ( SELECT MIN(tb2.rowid) FROM tablomuz tb2 WHERE tb.ID = tb2.ID)

Komuttan sonraki Tablomuz
ID ADI SOYADI
1 Ercan Mustafa
2 Kemal Ay
3 Hakan Yıldız
4 Enes Ak

ALIAS’ın Where ve Order by içinde kullanımı

  • 4 sene önce, Emrah tarafından yazılmıştır.
  • 0 Yorum
  • Oracle

örnekle olayı anlatmaya çalışalım.

Where içinde Alias kullanmak:

select
    name as ObjeAdi,
    YEAR(create_date) as YIL,
    create_date as OlusturmaTarihi
from
    sys.objects
where YIL = 2012

Yukarıdaki sorguyu çalıştırdığınız zaman “Invalid column name ‘YIL’.” hatası alırsınız.

Order by İçinde Kullanımı :

select
    name as ObjeAdi,
    YEAR(create_date) as YIL,
    create_date as OlusturmaTarihi
from
    sys.objects
order by YIL desc

Yukarıdaki sorguyu ise herhangi bir hata almadan çalıştırabilirsiniz. Peki bunun sebebi nedir ?

SQL Server bir sorguyu işlerken belirli bir sıraya göre işlem yapar. Bu sıra genel hatları ile şu şekildedir. FROM -> ON -> WHERE -> SELECT -> ORDER BY

Tanımladığınız YIl alias ı select içinde tanımlandığı ve WHERE kısmı SQL de SELECT’ten önce çalıştığı için, WHERE kısmı çalışırken SQL engine daha YIL adındaki aliasın ne olduğunu bilmemekte. Bu yüzden de invalid column name hatası vermekte.

 

sorunu ;

select f.* from (select
    name as ObjeAdi,
    YEAR(create_date) as YIL,
    create_date as OlusturmaTarihi
from
    sys.objects ) as f
where YIL = 2012
modunda aşabilirsiniz.