要写一个oracle的自定义函数,外界传入一个日期,一个数值.返回一个数字create or replace function f_test
(pdate in char,pctmoney in number)
return number
is
rsum number:=0;
begin
-- 日期小于2009-12-01 返回系数是0.05 否则系数是0.025
if pdate < '2009-12-01' then
select pctmoney * 0.05 into rsum
else
select pctmoney * 0.025 into rsum
end if return(rsum)
end ;测试时提示出错,无效的描述对象:
(pdate in char,pctmoney in number)
return number
is
rsum number:=0;
begin
-- 日期小于2009-12-01 返回系数是0.05 否则系数是0.025
if pdate < '2009-12-01' then
select pctmoney * 0.05 into rsum
else
select pctmoney * 0.025 into rsum
end if return(rsum)
end ;测试时提示出错,无效的描述对象:
create or replace function f_test
(pdate in char,pctmoney in number)
return number
is
rsum number:=0;
begin
-- 日期小于2009-12-01 返回系数是0.05 否则系数是0.025
if pdate < '2009-12-01' then
rsum := pctmoney * 0.05
else
rsum := pctmoney * 0.025;
end if return(rsum)
end ;
真不习惯 end if 后面还得跟个分号 ;
create or replace function f_test
(pdate in char,pctmoney in number)
return number
is
rsum number:=0;
begin
-- 日期小于2009-12-01 返回系数是0.05 否则系数是0.025
if pdate < '2009-12-01' then
select pctmoney * 0.05 into rsum from dual;
else
select pctmoney * 0.025 into rsum from dual;
end if; return rsum;
exception when others then
raise;
end ;
/
任何一句话后面都得有分号。包括最后的return。