Oracle|Oracle 自定义函数
函数
函数用于返回特定数据。执行时得找一个变量接收函数的返回值;
语法如下: create or replace function function_name
(
argu1 [mode1] datatype1,
argu2 [mode2] datatype2, ........
)
return datatype
is
begin
end;
执行 var v1 varchar2(100)
exec :v1:=function_name
===============================================================================
不带任何参数
===============================================================================
create or replace function get_user return varchar2 is
Result varchar2(50);
begin
select username into Result from user_users;
return(Result);
end get_user;
执行:
===============================================================================
带in参数的
===============================================================================
create or replace function get_sal(empname in varchar2) return number is
Result number;
begin
select sal into Result from emp where ename=empname;
return(Result);
end get_sal;
执行: SQL> var sal number
SQL> exec :sal:=get_sal('scott');
===============================================================================
带out参数的函数
===============================================================================
create or replace function get_info(e_name varchar2,job out varchar2) return number is
Result number;
begin
select sal,job into Result,job from emp where ename=e_name;
return(Result);
end get_info;
执行: SQL> var job varchar2(20)
SQL> var dname varchar2(20)
SQL> exec :dname:=get_info('SCOTT',:job)
===============================================================================
带in out参数的函数
===============================================================================
create or replace function result(num1 number,num2 in out number) return number is
v_result number(6);
v_remainder number;
begin
v_result :=num1/num2;
v_remainder :=mod(num1,num2);
num2 :=v_remainder;
return(v_result);
Exception
when zero_divide then
raise_application_error(-20000,'不能除0');
end result;
执行: var result1 number;
var result2 number;
exec :result2:=30
exec :result1:=result(100,:result2)
===============================================================================
推荐阅读
- 一起来学习C语言的字符串转换函数
- C语言字符函数中的isalnum()和iscntrl()你都知道吗
- SpringBoot调用公共模块的自定义注解失效的解决
- C语言浮点函数中的modf和fmod详解
- python自定义封装带颜色的logging模块
- C语言中的时间函数clock()和time()你都了解吗
- 列出所有自定义的function和view
- 概率论/统计学|随机变量 的 分布函数 与 概率密度函数 的区别
- oracle|oracle java jdk install
- vue组件中为何data必须是一个函数()