DECLARE
CURSOR c1
IS
SELECT ali.country_id, ali.country_name
FROM aliates ali;
-- yeni_country_id ali.country_id%TYPE;
-- yeni_country_name ali.country_name%TYPE;
--burada ali alias ı global olmadıgı için select ifadesi bittiğinden ali değeri gidecektir.
--bu sesberen dolayı tablo adını kullanarak çağırmanız gerekecektir. aksi halde hata alırsınız.
yeni_country_id aliates.country_id%TYPE;
yeni_country_name aliates.country_name%TYPE;
BEGIN
OPEN c1;
LOOP
FETCH c1
INTO yeni_country_id, yeni_country_name;
EXIT WHEN c1%NOTFOUND;
DBMS_OUTPUT.put_line (yeni_country_id);
END LOOP;
CLOSE c1;
END;
Cursor sonuna gelene kadar ekrana yazmaya devam eder.
//////////////////////////////////////////////////////////////////////////////////////////////////////
DECLARE
sqlstring VARCHAR2 (500);
--sqlstring1 VARCHAR2 (200);
TYPE mycursor_type IS REF CURSOR;
mycursor mycursor_type;
cikti VARCHAR2 (100);
BEGIN
sqlstring := 'select TABLE_NAME from user_tables ';
OPEN mycursor FOR sqlstring;
FETCH mycursor
INTO cikti;
WHILE NOT mycursor%NOTFOUND
LOOP
--sqlstring1 := cikti;
DBMS_OUTPUT.put_line (cikti);
FETCH mycursor
INTO cikti;
END LOOP;
END;
Cursor kullanımı ile ilgili başka bir örnek bu örnekte while kullanılıyor. Sorgunun sonuçları cursor’e atılıyor daha sonar while ile (sonuna kadar gidilerek)cursordaki bütün elemanları ekrana tek tek yazıdırılıyor.
No comments:
Post a Comment