Provided by: manpages-tr_1.0.5.1-1.1_all bug

İSİM

       FETCH - bir gösterici kullanarak bir sorgudan satırları çeker

KULLANIM

       FETCH [ yn { FROM | IN } ] gsterici_ismi

       burada yn 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

       yn    Çekim   yönünü   ve   çekilecek   satır    sayısını    tanımlar.
              Aşağıdakilerden biri olabilir:

              NEXT   Sonraki  satırı çeker. yn 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.

       gsterici_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