我有一个plsql函数,我想从我的函数中调用另一个函数。我怎么能这样做?
FUNCTION ortak_icra_job(prm_dosya_id dosya.id%TYPE,
prm_aciklama icra_hareket.aciklama%TYPE,
prm_kullanici_id kullanici.id%TYPE,
prm_ask_ind_kayit_sayisi OUT NUMBER,
prm_hata_metni OUT VARCHAR2,
prm_hata_kodu OUT hata_mesaji.id%TYPE)
BEGIN
askidan_indir(prm_dosya_id ,
prm_aciklama ,
prm_kullanici_id ,
prm_ask_ind_kayit_sayisi ,
prm_hata_metni ,
prm_hata_kodu )
END;
这是正确的方法吗?
答案 0 :(得分:8)
Here是如何运行函数的示例。有两种方法可以做到这一点。
尝试添加结果值:
result := askidan_indir(prm_dosya_id,
prm_aciklama,
prm_kullanici_id,
prm_ask_ind_kayit_sayisi,
prm_hata_metni,
prm_hata_kodu )
您还可以在select statement
中使用您的功能:
select askidan_indir(prm_dosya_id,
prm_aciklama,
prm_kullanici_id,
prm_ask_ind_kayit_sayisi,
prm_hata_metni,
prm_hata_kodu)
into result
from dual;
答案 1 :(得分:4)
Functions必须返回一个值,否则你应该有一个函数的赋值目标。
FUNCTION ortak_icra_job(prm_dosya_id dosya.id%TYPE,
prm_aciklama icra_hareket.aciklama%TYPE,
prm_kullanici_id kullanici.id%TYPE,
prm_ask_ind_kayit_sayisi OUT NUMBER,
prm_hata_metni OUT VARCHAR2,
prm_hata_kodu OUT hata_mesaji.id%TYPE)
RETURNS VARCHAR2 IS
v_result varchar2(200);
BEGIN
v_result := askidan_indir(prm_dosya_id ,
prm_aciklama ,
prm_kullanici_id ,
prm_ask_ind_kayit_sayisi ,
prm_hata_metni ,
prm_hata_kodu );
RETURN v_result;
END;