Provided by:
manpages-tr_1.0.5.1-1.1_all 
İSİM
DECLARE - bir gösterici tanımlar
KULLANIM
DECLARE isim [ BINARY ] [ INSENSITIVE ] [ [ NO ] SCROLL ]
CURSOR [ { WITH | WITHOUT } HOLD ] FOR sorgu
[ FOR { READ ONLY | UPDATE [ OF sütun [, ...] ] } ]
AÇIKLAMA
DECLARE büyükçe bir sorgunun zamanaşımı içinde az sayıda satırın bir
kullanıcı tarafından çekilmesi için kullanılabilecek göstericilerin
bildirimini yapmakta kullanılır. FETCH [fetch(7)] kullanılarak veri
ister metin ister ikilik biçimde göstericiden döndürülebilir.
Normal göstericiler SELECT'in ürettiği gibi veriyi metin biçiminde
döndürür. Veri doğal ortamında ikilik biçimde saklandığından, sistemin
metin biçimine dönüşüm yapması gerekir. Metin biçiminde gelen veriyi
istemci uygulamanın, üzerinde işlem yapabilmek için ikilik biçime
dönüştürmesi gerekebilir. Bundan başka metin biçimindeki veri
çoğunlukla ikilik biçimdeki veriden daha fazla yer kaplar. İkilik
göstericiler veriyi daha kolay işlenebilen ikilik gösterimde
döndürürler. Ancak, veriyi metin biçiminde göstermeyi tasarlıyorsanız,
verinin metin biçiminde alınması istemci tarafında daha az çaba
gerektirecektir.
Bir örnek vermek gerekirse, bir sorgunun bir tamsayı değer içeren bir
sütundan veri döndürmesini istiyorsanız, bir öntanımlı gösterici ile 1
içeren bir dizge alırken, bir ikilik gösterici bu değerin 4 baytlık
alan içeren dahili gösterimini döndürecektir (big-endian -- en kıymetli
bayt ilk).
İkilik göstericiler dikkatli kullanılmalıdır. psql dahil çoğu uygulama,
ikilik göstericileri bilmez ve veriyi metin biçiminde döndürür.
Bilgi: "Gelişmiş sorgulama" (extended query) protokolünü kullanan bir
istemci uygulaması, verilen bir FETCH komutuyla, Bind
protokolünün veriyi ikilik biçimde mi yoksa metin biçiminde mi
alacağını belirtir. Bu seçim göstericinin bildirilmesi sırasında
belli bir biçime zorlanabilir. Gelişmiş sorgu protokolü
kullanarak bir ikilik gösterici alınabileceğini ummak, bu
nedenle atıldır; her gösterici metin ya da ikilik olarak ele
alınabilir.
PARAMETRELER
isim Oluşturulacak göstericinin ismi.
BINARY Göstericinin metin değil ikilik biçimde veri döndürmesini
saÄŸlar.
INSENSITIVE
Göstericiden alınan verinin, gösterici etkinken, soruladığı
tablolardaki güncellemelerden etkilenmeyeceğini belirtir.
PostgreSQL'de tüm göstericiler böyledir ve bu sözcük şimdilik
etkisizdir, sadece SQL standardıyla uyum için vardır.
SCROLL, NO SCROLL
Göstericinin satırları sıralı olmayan biçimde döndürmek için
kullanılabileceğini belirtmek için kullanılır. SCROLL deyiminin
belirtilmesi, sorgunun çalıştırılma planının karmaşıklığına
bağlı olarak, sorgunun çalışması sırasında bir başarım kaybı
oluşturabilir. NO SCROLL ise, göstericinin satırları sıralı
olmayan biçimde döndürmek için kullanılamayacağını belirtir.
WITH HOLD, WITHOUT HOLD
WITH HOLD, göstericinin oluşturulduğu hareketin tamamlanmasından
sonra kullanılmaya devam edilebileceğini belirtir. WITHOUT HOLD
ise göstericinin oluşturulduğu hareket dışında
kullanılamayacağını belirtir. Ne WITHOUT HOLD ne de WITH HOLD
belirtilmişse, WITHOUT HOLD öntanımlıdır.
sorgu Gösterici tarafından döndürülecek satırları üretecek bir SELECT
cümlesi. Geçerli sorgular hakkında bilgi edinmek için SELECT
[select(7)] kılavuz sayfasına bakınız.
FOR READ ONLY, FOR UPDATE
FOR READ ONLY göstericinin salt okunur kipte kullanılacağını
belirtir. FOR UPDATE ise göstericinin tabloları güncellemekte
kullanılacağını belirtir. Gösterici güncellemeleri PostgreSQL'de
desteklenmediğinden, FOR UPDATE kullanımı bir hata iletisine
sebep olacak, FOR READ ONLY deyiminin ise bir etkisi
olmayacaktır.
sütun Gösterici tarafından güncellenecek sütunlar. Gösterici
güncellemeleri PostgreSQL'de desteklenmediğinden, FOR UPDATE
kullanımı bir hata iletisine sebep olur.
BINARY, INSENSITIVE ve SCROLL sözcükleri herhangi bir sırada
kullanılabilir.
EK BİLGİ
WITH HOLD belirtilmedikçe, bu cümle ile oluşturulan gösterici sadece o
anki hareketin içinde kullanılmış olabilir. Bu nedenle, WITH HOLD'suz
DECLARE bir hareket kümesinin dışında kullanışsız olduğu gibi,
kullanıldığı takdirde PostgreSQL bir hata iletisi üretecektir. Bir
hareket kümesini tanımlamak için BEGIN [begin(7)], COMMIT [commit(7)]
ve ROLLBACK [rollback(7)] kullanılır.
Eğer WITH HOLD belirtilmiş ve göstericinin oluşturulduğu hareket
baaşarıyla tamamlanmışsa, bu gösterici aynı oturumun daha sonraki
hareketleri tarafından erişilebilir olacaktır. (Fakat hareket kesintiye
uğramış ve tamamlanmamışsa, gösterici iptal edilir.) WITH HOLD ile
oluşturulmuş bir gösterici, doğrudan bir CLOSE komutuyla ya da dolaylı
olarak oturum sonunda kapatılır. Şimdiki gerçeklenimde, böyle bir
gösterici tarafından sunulan satırlar ya geçici bir dosyaya ya da
belleğe kopyalanarak daha sonraki hareketler için kullanılabilir
kalması sağlanır.
Bir gösterici satırların geri yönde çekilmesi için kullanılacaksa, bu
gösterici bildirilirken SCROLL seçeneği belirtilmelidir. Bu SQL
standardının gereğidir. Ancak, önceki sürümlerle uyumluluk için, eğer
göstericinin sorgusu desteklenmek için ek bir masraf gerektirmeyecek
kadar basitse, PostgreSQL SCROLL olmaksızın geriye doğru satır çekmeye
izin verecektir. Yine de, uygulama geliştiriciler önerimiz, SCROLL
belirtmeden oluşturulmuş göstericilere, geriye doğru satır çekimi için
güvenmemeleri olacaktır. Eğer, NO SCROLL belirtilmişse hiçbir durumda
geri yönde satır çekmeye izin verilmeyecektir.
SQL standardı sadece gömülü SQLde göstericiler için hükümler içerir.
PostgreSQL sunucusu göstericiler için bir OPEN deyimi gerçeklemez; bir
gösterici bildirildiği andan itibaren açık kabul edilir. Yine de,
PostgreSQL'in gömülü SQL önişlemcisi olan ECPG, DECLARE ve OPEN
deyimlerini de içererek, standart SQL uzlaşımlarını destekler.
ÖRNEKLER
Bir göstericiyi bildirmek için:
DECLARE liahona CURSOR FOR SELECT * FROM films;
Gösterici kullanımı ile ilgili daha fazla örnek için FETCH [fetch(7)]
kılavuz sayfasına bakınız.
UYUMLULUK
SQL standardı sadece gömülü SQL'de ve modüllerde göstericilere izin
verir. PostgreSQL ise, göstericilerin etkileşimli olarak kullanımına
izin verir.
SQL standardı göstericilerin tablo verisini güncellemek için
kullanımına izin verir. PostgreSQL göstericilerinin ise hepsi salt
okunurdur.
İkilik göstericiler bir PostgreSQL oluşumudur.
İLGİLİ BELGELER
CLOSE [close(7)], FETCH [fetch(7)], MOVE [move(7)].
ÇEVİREN
Nilgün Belma Bugüner <nilgun (at) belgeler·gen·tr>, Nisan 2005