Birden fazla satır döndüren select cümlelerini output ile
ekrana çıkarmak için for döngüsü kullanmak gerekiyor.
(Ali'ye atıfta bulunayım... :)))
----------------------------------------------------
DECLARE
text VARCHAR2(200);
v_text long;
BEGIN
for text in(select column_name from user_tab_columns where table_name = 'TABLE_NAME')
loop
v_text:=v_text||text.column_name||chr(10);
end loop;
dbms_output.put_line(v_text);
END;
-------------------------------------------
eğer tek değer döndüren bir select cümlesi ise
bildiğimiz gibi into kullanılır...
---------------------------------------------
DECLARE
text VARCHAR2(200);
v_text long;
BEGIN
v_text:= 'select column_name as text from user_tab_columns where table_name =''TABLE_NAME''';
execute immediate v_text into text;
dbms_output.put_line(text);
END;
------------------------------------------------------------
07 Nisan 2009 Salı
Kaydol:
Kayıt Yorumları (Atom)
3 yorum:
Bu atif bana mı acep bende buldum bunu. hatta for döngüsene başka bir örnekte ben vereyim. diyelimki update işlemi yapacağiz ve birden fazla yaıt donuyor o zaman ya in kullancağiz yada for ile işimizi halledeceğiz öernek kodlar aşağıdaki gibi
BEGIN
FOR update_ali IN (SELECT causft_id
FROM ali_sil)
LOOP
UPDATE aliates
SET cc = '0'
WHERE aliates.cc = update_ali.causft_id;
END LOOP;
END;
in kullanarakda aynı işlemi
update ali_sil set CAUSFT_ID ='9' where CAUSFT_ID in (select ali.CAUSFT_ID from ali_sil ali , aliates aa where ali.CAUSFT_ID= aa.cc)
dostum bu begin ile başyan kodu nereye yazacağım SQLnavigator kullanıyorum Bu fonksiyon yapabilirmiyiz örnek olarak hastaya ICD giriliyor 4 tane ICD girildiğim Zaman reçetenin üstüne j03.0 Akut Tonsilit,j06 neydibuya , j05 bune
şeklinde çıkarabilirmiyiz
select icdbirlestir(protokol,kayit_yil) from hasta_recete_kayitlari
bunun gibi yani kolay gelsin.
begin...end ile başlayan plsql bloğudur ve bu plsql 'i SqlNavigator'da da sql editöründe(sql'lerimizi çalıştırdığımız ekranda) çalıştırabilirsiniz.Elbetteki plsql bloklarını geliştirip fonksiyona,procedure'e çevirebilirsiniz fakat bu yapıların kullanım amaçlarını iyi ayırt etmek gerekiyor.İhtiyacınızın plsql bloğumu,fonksiyonmu yada prosedürmü olduğunu bilmeniz gerekiyor öncelikle.Açıkçası örneğinizi tam olarak anlamadım,istediğiniz hastanın protokol ve kayıt_yılı parametrelerini girdikten sonra o hastaya işlenen ICD kodlarının ve isimlerinin çıkması mı? fonksiyonlar genelde tek değer döndüren yapılardır... procedure de kullanabilirsin.
Yorum Gönder