create or replace function SETCASENO(strDate in VARCHAR2,strName in varchar2) return VARCHAR2 is Result VARCHAR2(50);
begin
if(INSTR(strName,'批次',0,1))>0 then
Result:='#YDSP'||strDate;
else
Result:='#DDXZ'||strDate;
end if;
return(Result);
end SETCASENO;
begin
if(INSTR(strName,'批次',0,1))>0 then
Result:='#YDSP'||strDate;
else
Result:='#DDXZ'||strDate;
end if;
return(Result);
end SETCASENO;
第一个条件就永远不可能为真值.
你报错的地方可能是你的 Result 的大小不够 ,你改成Result VARCHAR2(500)试验下
strname VARCHAR2(20);
strDate VARCHAR2(20);
Result VARCHAR2(50);BEGIN
strname :='aaaaaaa批次批次';
strDate:='2006-11-22';
IF(INSTR(strName,'批次',1,1))>0 THEN
Result:='#YDSP'||strDate;
ELSE
Result:='#DDXZ'||strDate;
END IF;
DBMS_OUTPUT.PUT_LINE(Result);END;--
#YDSP2006-11-22