如何在plsql函数中调用函数

时间:2012-10-15 07:16:15

标签: sql oracle plsql

我有一个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;

这是正确的方法吗?

2 个答案:

答案 0 :(得分:8)

Here是如何运行函数的示例。有两种方法可以做到这一点。

  1. 尝试添加结果值:

    result := askidan_indir(prm_dosya_id,
               prm_aciklama,
               prm_kullanici_id,
               prm_ask_ind_kayit_sayisi,
               prm_hata_metni,
               prm_hata_kodu )
    
  2. 您还可以在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;