Provided by:
manpages-tr_1.0.5.1-1.1_all 
İSİM
FETCH - bir gösterici kullanarak bir sorgudan satırları çeker
KULLANIM
FETCH [ yön { FROM | IN } ] gösterici_ismi
burada yön ya boş ya da şunlardan biri olabilir:
NEXT
PRIOR
FIRST
LAST
ABSOLUTE miktar
RELATIVE miktar
miktar
ALL
FORWARD
FORWARD miktar
FORWARD ALL
BACKWARD
BACKWARD miktar
BACKWARD ALL
AÇIKLAMA
FETCH evvelce oluşturulmuş bir göstericiyi kullanarak satırları çeker.
Bir gösterici FETCH tarafından da kullanılan ortak bir konuma sahiptir.
Göstericinin konumu sorgu sonucunun ilk satırının öncesinde, herhangi
bir satırında veya son satırının sonrasında olabilir. İlk
oluşturulduğunda bir gösterici ilk satırın öncesine konumlanır.
Satırlar çekildikten sonra gösterici en son alınan satıra konumlanır.
FETCH'in satırları çekip çalışması durduğunda gösterici son satırın
sonrasına ya da eğer geriye çekilmişse ilk satırın öncesine konumlanır.
FETCH ALL göstericiyi daima son satırın sonrasına, FETCH BACKWARD ALL
ise daima ilk satırın öncesine konumlandırır.
NEXT (sonraki), PRIOR (önceki), FIRST (ilk), LAST (son), ABSOLUTE
(mutlak), RELATIVE (göreli) biçimleri göstericiyi ilgili konuma
taşıdıktan sonra tek bir satırı çeker. O konumda bir satır yoksa, sonuç
boş olarak döner ve gösterici duruma göre ya ilk satırın öncesine ya da
son satırın sonrasına konumlanır.
FORWARD (ileri) ve BACKWARD (geri) biçimleri, ileri ya da geri yönde
belirtilen miktarda satırı çekmek için kullanılabilir. Gösterici son
çekilen satıra konumlanmış olarak bırakılır (eğer miktar alınabilecek
satır sayısından fazla ise, gösterici duruma göre son satırın sonrasına
ya da ilk satırın öncesine konumlanır).
RELATIVE 0, FORWARD 0, ve BACKWARD 0 biçimlerinin hepsi gösterici
hareket ettirilmeden o anki satırın çekilmesini sağlar, yani son
çekilen satır yeniden çekilir. Bu, ancak, gösterici ilk satırın
öncesinde ya da son satırın sonrasında değilse bir satırın çekilmesini
sağlar; aksi takdirde, bir satır döndürülmez.
PARAMETRELER
yön Çekim yönünü ve çekilecek satır sayısını tanımlar.
Aşağıdakilerden biri olabilir:
NEXT Sonraki satırı çeker. yön belirtilmezse bu öntanımlıdır.
PRIOR Önceki satırı çeker.
FIRST Sorgunun ilk satırını çeker (ABSOLUTE 1 ile aynıdır).
LAST Sorgunun son satırını çeker (ABSOLUTE -1 ile aynıdır).
ABSOLUTE miktar
miktar pozitifse, sorgunun miktar'ıncı satırını;
negatifse, sondan abs(miktar)'ıncı satırını çeker. miktar
gereğinden büyükse, gösterici duruma göre ya ilk satırın
öncesine ya da son satırın sonrasına konumlanır;
özellikle, ABSOLUTE 0 göstericinin ilk satırın öncesine
konumlanmasını sağlar.
RELATIVE miktar
Göstericinin konumuna göre, miktar pozitifse, sonraki
miktar'ıncı satırı; negatifse, önceki abs(miktar)'ıncı
satırı çeker. RELATIVE 0 o anki satırı varsa yeniden
çeker.
miktar Sonraki miktar satırı çeker (FORWARD miktar ile aynıdır).
ALL Kalan satırların hepsini çeker (FORWARD ALL ile aynıdır).
FORWARD
Sonraki satırı çeker (NEXT ile aynıdır).
FORWARD miktar
Sonraki miktar satırı çeker. FORWARD 0 o anki satırı
yeniden çeker.
FORWARD ALL
Kalan satırların hepsini çeker.
BACKWARD
Önceki satırı çeker (PRIOR ile aynı).
BACKWARD miktar
Önceki miktar satırı çeker. BACKWARD 0 o anki satırı
yeniden çeker.
BACKWARD ALL
Önceki tüm satırları çeker (geriye doğru tarama).
miktar Konumu ya da çekilecek satır sayısını belirtmek üzere kullanılan
bir işaretli tamsayıdır. FORWARD ve BACKWARD için belirtilen bir
negatif miktar yönün değişmesine sebep olur.
gösterici_ismi
Açık bir göstericinin ismi.
ÇIKTILAR
FETCH başarılı olduğunda şöyle bir çıktı döndürür:
FETCH miktar
Burada, miktar çekilen satırların sayısıdır (sıfır olabilir). Yalnız,
psql'de komutun ismi çıktıda gösterilmez, sadece çekilen satır sayısı
gösterilir.
EK BİLGİ
FETCH cümlesinin, pozitif bir miktar ile FETCH NEXT veya FETCH FORWARD
biçimleri dışında bir biçimle kullanılması düşünülüyorsa, gösterici
SCROLL seçeneği ile bildirilmelidir. Basit sorgular için PostgreSQL,
SCROLL ile bildirilmemiş göstericilerden geriye doğru satır çekilmesine
izin verir, fakat bu davranışın en iyisi olduğuna güvenmeyin. Eğer
gösterici NO SCROLL ile bildirilmişse geri yönde satır çekmeye izin
verilmez.
ABSOLUTE ile satır çekimleri istenen satırı bir göreli hareketle
çekmekten daha hızlı değildir: temel gerçeklenim aradaki satırların
tümünü bir şekilde geçmelidir. Negatif mutlak çekimlerin durumu daha
bile kötüdür: Sorgunun, son satırı bulana kadar tüm satırları okuması
ve buradan, çekilecek satıra kadar olan satırları tekrar geçmesi
gerekir. Yine de, sorgunun başa dönmesi hızlı olur (FETCH ABSOLUTE 0
ile olduÄŸu gibi).
Gösterici üzerinden güncelleme PostgreSQL tarafından şimdilik
desteklenmemektedir.
Bir götericiyi tanımlamak için DECLARE [declare(7)] kullanılır. Veri
döndürmeksizin göstericiyi hareket ettirmek için MOVE [move(7)]
kullanabilirsiniz.
ÖRNEKLER
Aşağıdaki örnekte bir tablo gösterici kullanılarak incelenmektedir:
BEGIN WORK;
-- Göstericiyi bildirelim:
DECLARE liahona SCROLL CURSOR FOR SELECT * FROM films;
-- liahona göstericisinden ilk 5 satırı çekelim:
FETCH FORWARD 5 FROM liahona;
code | title | did | date_prod | kind | len
-------+-------------------------+-----+------------+----------+-------
BL101 | The Third Man | 101 | 1949-12-23 | Drama | 01:44
BL102 | The African Queen | 101 | 1951-08-11 | Romantic | 01:43
JL201 | Une Femme est une Femme | 102 | 1961-03-12 | Romantic | 01:25
P_301 | Vertigo | 103 | 1958-11-14 | Action | 02:08
P_302 | Becket | 103 | 1964-02-03 | Drama | 02:28
-- Önceki satırı çekelim:
FETCH PRIOR FROM liahona;
code | title | did | date_prod | kind | len
-------+---------+-----+------------+--------+-------
P_301 | Vertigo | 103 | 1958-11-14 | Action | 02:08
-- Göstericiyi kapatıp hareketi sonlandıralım:
CLOSE liahona;
COMMIT WORK;
UYUMLULUK
SQL standardındaki FETCH deyimini sadece gömülü SQL'de kullanmak
içindir. Burada açıklanan FETCH ise, veriyi bir konak değişkenine
yerleştirilmiş olarak değil, bir SELECT sonucu gibi döndürür. Bunun
dışında FETCH, SQL standardı ile tamamen uyumludur.
FORWARD ve BACKWARD biçimleriyle FORWARD örtük olma üzere FETCH miktar
ve FETCH ALL biçimleri birer PostgreSQL oluşumudur.
SQL standardı FROM deyimine sadece ismin önünde izin verir; IN
kullanımı bir PostgreSQL oluşumudur.
İLGİLİ BELGELER
CLOSE [close(7)], DECLARE [declare(7)], MOVE [move(7)].
ÇEVİREN
Nilgün Belma Bugüner <nilgun (at) belgeler·gen·tr>, Nisan 2005