Etiket Arşivi pl/sql

ROWNUM Kullanımı

Merhabalar.

MySQL’de LIMIT fonksiyonu ile getireceğimiz kayıtların belli bir miktarını getirmeyi sağlayabiliyoruz. ORACLE PL/SQL’de ise benzer işlemleri ROWNUM ile yapabiliriz.

Örneğin elimde OGRENCI isminde; AD,SOYAD,NO alanlarını barındıran bir tablom var. İçinde de 10 tane kayıt var.

SELECT * FROM ogrenci

Gelen sonuç:
1

Bu kayıtlardan 5 tanesini getirmesini istiyorum. MySQL’de bunun için yazmam gereken sorgu:

SELECT *
FROM ogrenci
WHERE LIMIT 5

PL/SQL’de ise şu şekilde yazıyorum:

SELECT *
FROM ogrenci
WHERE ROWNUM<=5

Gelen sonuç:
2

Bu kayıtlardan 5 tanesini getirip, sonra NO sütununa göre küçükten büyüğe sıralamasını istiyorum(büyükten küçüğe sıralamak için “ASC” yerine “DESC” yazılması yeterli):

SELECT *
FROM ogrenci
WHERE ROWNUM<=5
ORDER BY no ASC

Gelen sonuç:
3

Bu kayıtları NO sütununa göre küçükten büyüğe sıralayıp, 5 tanesini getirmek istiyorum(yani NO’su en küçük olan 5 kaydı getiriyorum):

SELECT *
FROM (SELECT * FROM ogrenci ORDER BY no ASC)
WHERE ROWNUM<=5

Gelen sonuç:
4

Kayıtların NO’su en büyük 3 tanesini küçükten büyüğe sıralayarak getirmek istiyorum:

SELECT *
FROM (select * from ogrenci ORDER BY no DESC)
WHERE rownum <= 3
ORDER BY rownum DESC

Gelen sonuç:
5

ROWNUM kullanımı için şu anda aklıma gelen durumlar bunlar.

Kendinize çook iyi davranın.

 Bu sayfa 4650 kez görüntülendi

It's only fair to share...Share on LinkedInShare on FacebookShare on Google+Tweet about this on TwitterShare on Tumblr

SQL Navigator’de “Access violation at address … in module ‘ntdll.dll’. Write of address …” Hatası

Merhabalar.

Bilgisayara yeni işletim sistemini kurduktan sonra, doğal kurulum hatalarıyla uğraşmaya başladım 🙂 Oracle’ı, Visual Studio’su derken SQL Navigator’da aşağıdaki gibi bir hata verdi:

Access violation at address 77889EA8 in module ‘ntdll.dll’. Write of address 00404A55

ntdll hata

Biraz uğraşıp, araştırınca sorunun nedeninin de çözümünün de çok basit bir şey olduğunu gördüm: tnsname.ora‘yı eklemeyi unutmuştum.

Daha sonra Oracle Client’ın network\ADMIN klasörüne (Bendeki dosya yolu bu şekildeydi: “D:\oracle\product\10.2.0\client_1\network\ADMIN“), tnsname.ora dosyasını ekleyince sorun çözüldü.

Kendinize çook iyi davranın.

 Bu sayfa 2439 kez görüntülendi

It's only fair to share...Share on LinkedInShare on FacebookShare on Google+Tweet about this on TwitterShare on Tumblr