İçeriğe geç

Pl/Sql Execute Immediate Yapısı

Spread the love

Pl sql’de dinamik query yazmak gerektiğinde Execute imamediate yapısı kullanılır. Bu yapı ile beraber dinamik query oluşturulabilir.

[sql]
DECLARE
type employeeTable is table of employee%ROWTYPE;
employee employeeTable;
v_query varchar2(1000);
typeOut varchar2(50);
typeId number;
deptId number;
BEGIN
typeId :=5;
deptId :=15;
typeOut := getType(typeId);
v_query := "select * from employee where deptId =:deptId"

if typeOut is not null then
v_query := v_query || " and type = typeOut";
end if;
EXECUTE IMMEDIATE v_query bulk collect into employee using deptId;
END;
[/sql]

Yukarıdaki block ta getType() fonksiyonuna typeId yollanmış sonuç olarak typeOut alınmak istemiştir. Eğer fonksiyondan sonuç dönmez ise typeOut null olacaktır. Böylece querye eklenmesi sakıncalıdır. Bu durumun kontrolünün yapılması queryi daha sağlıklı çalıştıracaktır.

Tarih:Oracle

İlk Yorumu Siz Yapın

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

This site uses Akismet to reduce spam. Learn how your comment data is processed.