-- 八、函数
必须有一个返回值/*
create [or replace] function 函数名[(形参列表)]
return 返回值类型
is/as
[声明部分]
begin
执行部分
return 语句;
[异常处理部分]
end;
*/
-- 1.不带参数的函数
create or replace function fun_hello
return varchar2
is
begin
return 'hello world!';
end;
-- 调用1:通过sql语句调用:
select fun_hello from dual;
-- 调用2:通过pl/sql语句调用
begin
dbms_output.put_line(fun_hello);
end;
-- 2、带参数的函数求两个数中最大值
create or replace function fun_max(a number,b number)
RETURN NUMBER
is
begin
if a>=b then
return a;
else
return b;
end if;
end;
declare
m number;
n number;
begin
m:=&请输入一个数据;
n:=&请输入另一个数据;
dbms_output.put_line(fun_max(m,n));
end;
-- 求一个数的阶乘
create or replace function fun_jc(n number)
return number
is
s number:=1;
begin
for i in 1..n
loop
s:=s*i;
end loop;
return s;
end;
select fun_jc(5) from dual;
declare
n number;
begin
n:=&请输入一个正整数;
dbms_output.put_line(fun_jc(n));
end;
-- 求税率
create or replace function tax(money number)
return number
is
rate number;
begin
if money<=3500 then
rate:=0;
else if money<=5000 then
rate:=(money-3500)*0.05;
else if money<=10000 then
rate:=1500*0.05+(money-5000)*0.1;
else if money<=15000 then
rate:=1500*0.05+5000*0.1+(money-10000)*0.15;
else
rate:=1500*0.05+5000*0.1+5000*0.15+(money-15000)*0.2;
end if;
end if;
end if;
end if;
return rate;
end;
select empno,ename,tax(sal) from emp;
函数
最新推荐文章于 2024-08-11 21:22:12 发布