create OR REPLACE function f_my( userId varchar2)
return integer is
  retNum integer;
begin
  if userId = '1' then
     retNum:=1;
  elsif userId='2' then
      retNum:=2;
  else
     retNum:=3;
  end if;
RETURN (retNum);
end;

解决方案 »

  1.   

    谢谢,能否帮改一下这个,立刻结帖:
    --ÅжÏÓû§ÊÇ·ñÓÐȨ²é¿´²Ù×÷´¦·½Ä£°å
    create OR REPLACE function f_isHaveRightRecipe(recipeTemplateID IN number , userId IN varchar2)
    return number is
      retNum number;
    begin
    if userId = '1' then
    begin
    if exists(select 1 from TRecipeTemplate where recipeTemplateID = recipeTemplateID and userId = userId) then
    retNum:=1;
    end;
    elseif userId <> '' then
    begin
    if exists(select 1 from TRecipeTemplate where recipeTemplateID = recipeTemplateID and (userId = userId or userID = '1')) then
    retNum:=1;
    end;
    else
         retNum:=0; RETURN (retNum);
    end;
      

  2.   

    create OR REPLACE function f_isHaveRightRecipe(recipeTemplateID IN number , userId IN varchar2)
    return number is
      retNum number;
    begin
    if userId = '1' then
    begin
    if exists(select 1 from TRecipeTemplate where recipeTemplateID = recipeTemplateID and userId = userId) then
    retNum:=1;
    end;
    elsif userId <> '' then
    begin
    if exists(select 1 from TRecipeTemplate where            recipeTemplateID = recipeTemplateID and (userId = userId or userID = '1')) then
    retNum:=1;
    end;
    else
         retNum:=0; RETURN (retNum);
    end;
      

  3.   

    create OR REPLACE function f_isHaveRightRecipe(recipeTemplateID IN number , userId IN varchar2)
    return number is
      retNum number;
    begin
    if userId = '1' then         if exists(select 1 from TRecipeTemplate where recipeTemplateID = recipeTemplateID and userId = userId) then
    retNum:=1; elseif userId<>'' then 
              if exists(select 1 from TRecipeTemplate where recipeTemplateID = recipeTemplateID and (userId = userId or userID = '1')) then
    retNum:=1; else
         retNum:=0;
            end if;
    RETURN (retNum);
    end;
      

  4.   

    exists不通过了,请在帮改改!
      

  5.   

    create OR REPLACE function f_isHaveRightRecipe(recipeTemplateID IN number , userId IN varchar2)
    return number is
      retNum number;
      v_count number;
    begin
    if userId = '1' then
    select count(1) into v_count
      from TRecipeTemplate where recipeTemplateID = recipeTemplateID and userId = userId
    if  v_count>0 then
    retNum:=1;
    else
    retNum:=0;
    end if; elsif userId <> '' then
    select count(1) into v_count
       from TRecipeTemplate where   recipeTemplateID = recipeTemplateID and (userId = userId or userID = '1')) 
         if v_count>0 then
    retNum:=1;
         else
    retNum:=0;
         end if;
    else
         retNum:=0;
    end if; RETURN (retNum);
    end;
      

  6.   

    create OR REPLACE function f_isHaveRightRecipe(recipeTemplateID IN number , userId IN varchar2)
    return number 
    is
      retNum number;
      num number;
    begin
    select count(*) into num
          from TRecipeTemplate 
          where recipeTemplateID = recipeTemplateID and (userId = userId or userID = '1');
          if num>0 then
           retNum:=1;
          else
         retNum:=0;
          end if; RETURN (retNum);
    end;