PL/SQL(六):函数

一、函数
 1、有返回值
 2、存储在数据库中
 3、能够作为表达式的一部分被调用
二、过程与函数的比较
 过程                               函数
 作为一个独立的PL/SQL 语句执行 作为表达式的一部分调用
 在规格说明中不包含 RETURN子句 必须在规格说明中包含RETURN子句
  可以返回很多值                  必须返回单个值
 不用包含 RETURN 语句         必须包含至少一条RETURN 语句
   总结:
 主要用途:作为SQL表达式的一部分,如 select max(id) where dual;
 只返回一个值,想要返回多个值,则必须传入多个out模式参数

--1.输出字符串
create or replace function getStr(str varchar)
return varchar
as
begin
    return str;
end;

declare
    str varchar(20);
begin
    println(getStr('abc'));     -- abc        
    select getStr('abc') into str from dual;                  
    println(getStr('abc'));   -- 作为表达式的一部分,结果abc
end;


 

---2. SQL 应用

/*
    输入员工编号,查找员工的工资和所在的部门
    只能返回一个值,想要获取多值只能指定 out 模式
*/
create or replace function fun_test(empId int,deptName out varchar)
return int
is
  v_sal int;
begin
  select sal,dname into v_sal,deptName from emp,dept 
  where emp.deptno=dept.deptno and  empno = empId;
  return v_sal;
end;

declare
  dname varchar(20);
  sal int;
begin
  sal:=fun_test(7369,dname); --输入员工编号,dname来获取返回的多值
  println(sal);         --输出工资 :1210
  println(dname);       --输出部门 :research
end;


 

--3.常用语句
  --显示错误语句 , fun_test为函数名
   show errors function fun_test;  
   --删除函数,
   drop function fun_test;


 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值