1-IN
2-OUT
3-IN OUT
IN: parametre tipi programımıza bir değer göndermektedir. Standart parametre modudur.. Parametre tipi herhangi bir ifade, değer veya sabit olabilir.
OUT: parametre tipi programımızdan bir değeri ortama geri döndürmektedir. Özellikle belirtilmesi gerekir. Bir değişken olmalıdır.
IN OUT: parametre tipi programa bir değer gönderirken bu değerin değiştirilme ihtimali ve geri döndürülme ihtimali bulunur. Özellikle belirtilmesi gerekir. Bir değişken tipinde olmalıdır.
Prosedürler çağırılırken içerisindeki değerler direk in tipi parametre olarak kabul edilirler. Eğer prosedürümüzün bir değer döndüreceğini belirtmek istiyorsak özellikle out veya in out diye belirtmemiz gerekir.
Standart bir PL/SQL blok örneği :
1->Veri seti olusturulması;
CREATE TABLE STUDENT
(
ID NUMBER,
NAME VARCHAR2(10),
SNAME VARCHAR2(10)
);
insert into STUDENT values(1,'TEST','TEST1');
insert into STUDENT values(2,'TESTA','TESTA1');
insert into STUDENT values(3,'TESTB','TESTB1');
COMMIT;
2->IN /OUT Paremetleri standart PL/SQL paketinin olusturulması;
CREATE OR REPLACE PROCEDURE find_sname
(
i_student_id IN NUMBER,
o_first_name OUT VARCHAR2,
o_last_name OUT VARCHAR2
)
AS
BEGIN
SELECT name, Sname
INTO o_first_name, o_last_name
FROM student
WHERE id = i_student_id;
EXCEPTION
WHEN TOO_MANY_ROWS
THEN
DBMS_OUTPUT.PUT_LINE('More than one finding student_id:'||i_student_id);
WHEN OTHERS
THEN
DBMS_OUTPUT.PUT_LINE('Error in finding student_id:'||i_student_id);
END find_sname;
3->PL/SQL paketinin calıstırılması;
v_local_first_name student.name%TYPE;
v_local_last_name student.Sname%TYPE;
BEGIN
find_sname (2, v_local_first_name, v_local_last_name);
DBMS_OUTPUT.PUT_LINE ('Student 2 is: '||v_local_first_name||' '|| v_local_last_name||'.');
END;
4->Output;
Hiç yorum yok:
Yorum Gönder