我用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: 参数不对
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: 参数不对
create or replace function UPDSTATUS (CODE IN INTEGER, NUM IN INTEGER)
RETURN pls_integer
is
...
..............
begin
....
........
end;
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;
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
);自己解决了