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;
————————————————————
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şlemiupdate 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_kayitlaribunun 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.