各位,我在ORACLE9I中要建一个有返回值的存储过程,但是老出错,下面是我的存储过程:
 (
 returnvalue out varchar2,
 eid varchar2,
 ename varchar2,
 epwd varchar2,
 ero char,
 ers char,
 erm char,
 edid char 
)
as
begin
 --先判断在雇员表中是否存在这个雇员,如果存在返回"employeer exist"信息,否则插入一条记录返回一个"true"信息
 if exists (select * from employeer where emplid=eid) then
    returnvalue := 'employeer exist'
 else
    insert into employeer (emplid,emplname,empl_depaid,emplpassword,
    emplrope,emplrset,emplrman) values (eid,ename,edid,epwd,ero,ers,erm)
    returnvalue := 'True'
 endif 
end;

解决方案 »

  1.   

    insert into employeer (emplid,emplname,empl_depaid,emplpassword,
        emplrope,emplrset,emplrman) values (eid,ename,edid,epwd,ero,ers,erm);加上;分号
      

  2.   

    这个错误信息:
    行号= 14 列号= 2 错误文本= PLS-00103: 出现符号 "ELSE"在需要下列之一时:  . ( * @ % & = - + ; < / >    at in is mod not rem <an exponent (**)> <> or != or ~= >= <=    <> and or like between || 符号 ";" 被替换为 "ELSE" 后继续。 
    行号= 17 列号= 2 错误文本= PLS-00103: 出现符号 "END"在需要下列之一时:  . ( * @ % & = - + ; < / >    at in is mod not rem <an exponent (**)> <> or != or ~= >= <=    <> and or like between || 
      

  3.   

    begin
     --先判断在雇员表中是否存在这个雇员,如果存在返回"employeer exist"信息,否则插入一条记录返回一个"true"信息
     if exists (select * from employeer where emplid=eid) then
        returnvalue := 'employeer exist';--【分号】
     else
        insert into employeer (emplid,emplname,empl_depaid,emplpassword,
        emplrope,emplrset,emplrman) values (eid,ename,edid,epwd,ero,ers,erm);--【分号】
        returnvalue := 'True';--【分号】
     end if;--【分号】
    end;
      

  4.   

    楼上的, 你在oracle里面见过
    if exists (select * from employeer where emplid=eid) then
    这么用法的?楼住完全SQL server 语法