oracle中的自定义函数

函数 sum() count() max() min()...


自定义函数 类似存储过程  


可以放在查询语句中
存储过程 与函数不同
存储过程用来完成特定的数据操作(修改、删除、ddl语句)
函数一般用来完成某个计算返回一个结果




函数必须要有一个返回值 存储过程可有可无




存储过程 要单独调用 exec  plsql 存储过程 进行调用




函数可以使用sql语句调用 也可以使用 PLSQL调用


select to_char(sysdate) from dual;


函数的语法定义
  create or replace function 函数名
  (
arg mode datatype,
参数类型 也是三种 in out in out








   return 返回值的数据类型(number,varchar2)
   )
 is/as


 begin




 end;


自定义求和函数
函数可不可以输出多个结果?

return in out out 理论上可以



create or replace function getResult
(
       a in number,
       b in number
)
return number

is
       c number(4);

begin
       c:=a+b;
       return c;


end;

select getResult(3,5) from dual;

--创建一个函数,需要传入empno去查询 这个人的工资
--通过sql语句调用
create or replace function getSal
(
       fempno in number
)
return number
is
       fsal number;
begin
 select sal into fsal from emp where empno=fempno;
 return fsal;

end;

select getSal(7369) from dual;

select * from emp
--通过PLSQL调用

declare 
       sal emp.sal%type;
begin
       sal:=getSal(7369);
       dbms_output.put_line(sal);

end;


--创建函数通过传入员工姓名,输出部门名 select * from emp  select * from dept
create or replace function getDepartmentName
(
       e_name varchar2
)
return varchar2
is
       departmentName varchar2(20);
begin
       select dname into departmentName from dept where deptno=(select deptno from emp where ename=e_name);
       return departmentName;
end;
--sql
select getDepartmentName('SMITH') from dual;
--plsql

declare
       d_name varchar2(20);

begin
       d_name:=getDepartmentName('SMITH');
       dbms_output.put_line(d_name);


end;


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值