我用C写了一个函数
int UpdateStatus(int code,int num)
{}CREATE OR REPLACE LIBRARY c_lib已经成功现在ORACLE里写create or replace function老是通不过,望高手赐教
create or replace
FUNCTION UPDSTATUS (CODE IN INTEGER, NUM IN INTEGER)
RETURN pls_integer  
IS EXTERNAL
   LIBRARY c_lib
   NAME "UpdateStatus"
   LANGUAGE c
   PARAMETERS (
      CODE MAXLEN SB4 ,
      NUM SB4,
      RETURN MAXLEN,
      RETURN
   );
Error(1): PL/SQL: Compilation unit analysis terminated
Error(8,15): PLS-00253: 参数不对

解决方案 »

  1.   

    我看你这个函数,语法结构都不对
    create or replace function UPDSTATUS (CODE IN INTEGER, NUM IN INTEGER) 
    RETURN pls_integer 
    is
    ...
    ..............
    begin
    ....
    ........
    end;
      

  2.   

    参考案例:
    create     or   replace   function   fn_string(p_id   integer) 
    returns   varchar2(100) 
    is
    v_s1   varchar(100); 
    v_parent1   integer; 
    v_name1   varchar2(1); 
    v_type1   integer; 
    begin v_s1:= ' '; 
    for   rec   in   (select   *   from   Dept   where   id=p_id) 
    loop 
    v_parent1:=rec.parent; 
    v_name1:=rec.name; 
    v_type1:=rec.type   ; 
    end   loop; 
    if   v_type1 <=2   then   
    v_s1:=v_name1; 
    else 
    select   fn_string(v_parent1)|| '\ '||v_name1   into   v_s1   from   dual; 
    end   if; 
    return   v_s1; 
    end;
      

  3.   

    create or replace
    FUNCTION UPD_XFER_STATUS (in_CODE IN PLS_INTEGER, in_NUM IN PLS_INTEGER)
    RETURN NUMBER  
    IS EXTERNAL
    LIBRARY xfer_lib
    NAME "UpdateStatus"
    LANGUAGE c
    PARAMETERS (
      in_CODE INT ,
      in_NUM INT,
      RETURN
    );自己解决了