自写简单oracle数据库函数

时间:2022-08-19 14:52:11

1、返回两个数中较大者

create or replace function chooseMax(v1 in number,v2 in number)
  return number
is v_max number;
begin
  if(sign(v1-v2)>=0)
    then v_max:=v1;
  elsif(sign(v1-v2)<0)
    then v_max:=v2;
  end if;
  return v_max;
end;

--例子

select  choosemax(2,3) from dual;      结果:3

 

2、输入小写字符串返回相应的大写字符串

create or replace function up(v_str1 in varchar2)
  return varchar2
is
  v_str2 varchar2(200);
  v1 varchar2(200);
  v2 varchar2(200);
  v_count number;
begin
  v_count:=length(v_str1);
if(v_count>0)
then
    for i in 2..v_count-1 loop
  v1:=chr(ASCII(subStr(v_str1,i,1))-32);
  v2:=v2||v1;
end loop;
  v_str2:=v2;
else
  v_str2:='';
end if ;
  return v_str2;
end;

--例子

select up('aaa') from dual;    结果AAA’