一:说明
Oracle数据库本身预置了很多函数,如日期函数,字符串函数,数值函数等,当这些预置的函数无法满足业务的要求时,我们可以自定义函数来解决问题。
二:语法
create [or replace] function 函数名(参数1 类型,参数2 类型,......)
return 类型
is
--变量声明区
begin
--业务逻辑区
return 值;
end;
/
三:练习
判断一个数,如果大于0,就返回1,如果小于0,就返回-1,如果等于=0,就返回0。
create or replace function check(num number)
return number
is
begin
if num>0 then
return 1;
elsif num<0 then
return -1;
else
return 0;
end if;
end;
/
--plsql调用
begin
dbms_output.put_line(3);
end;
/
四:函数参数
同样有in,out,in out 属性,其规则与存储过程一样。
-->练习:计算两个数字的和,并返回这个数字。
create or replace function sum(a in out number,b in out number)
return number
is
begin
if a is null then
a:=0;
if b is null then
b:=0;
end if;
return a+b;
end;
/
--调用
declare
s number;
a number:=1;
b number:=2;
begin
s:=sum(a,b);
dbms_output.put_line(s);
end;
/
五:存储过程与函数的选择
1)如果进行DML操作,选择存储过程。
2)如果没有DML操作,考虑选择函数。