【无参数】

--创建一个函数,返回当前日期,有返回值无参数
create or replace function get_sysdate
return dateasv_date date;beginv_date := sysdate;
return v_date;end;
【调用方式】
begindbms_output.put_line(to_char(get_sysdate,'yyyy"年"-mm"月"-dd"日"'));end;

【默认 in 型参数】


--定义一个函数,获取给定部门的工资总数。要求:部门号定义为 参数,工资总额定义为返回值;create or replace function get_sal(dept_id number)
return number//返回number类型as
//声明变量,记录工资总和
v_sumsal number(10) := 0;cursor salary_cursor is select salary from employees where department_id = dept_id;beginfor c in salary_cursor loopv_sumsal := v_sumsal +c.salary;end loop;return v_sumsal;end;

【函数的调用方式】


【第一种调用方式】
begin
dbms_output.put_line(get_sal(80));
end;
【第二种调用方式】select get_sal(80) from dual;

【带有 out 型参数】

--定义一个函数,获取给定部门的工资总和和该部门的员工总数。
--要求:部门号定义为 参数,工资总额定义为返回值;create or replace function get_salsum(dept_id number,total_count out number)
//total_count为 out 型参数
return numberasv_sumsal number(10) := 0;//定义游标,进行循环叠加
cursor salary_cursor is select salary from employees where department_id = dept_id;begin
//为total_count赋初值 0 ;
total_count := 0;for c in salary_cursor loopv_sumsal := v_sumsal +c.salary;
total_count := total_count + 1;end loop;return v_sumsal;end;【调用方式】declarev_num number(10);begindbms_output.put_line(get_salsum(80,v_num));
dbms_output.put_line(v_num);end;

结果:工资综合、员工数


【in out 型参数】

create or replace function get_salsum(dept_id number,total_count in out number)
return numberasv_sumsal number(10) := 0;cursor salary_cursor is select salary from employees where department_id = dept_id;begin//同比上,这里不再为total_count赋初值,而是取用调用该函数时,传进来的值
for c in salary_cursor loopv_sumsal := v_sumsal +c.salary;
total_count := total_count + 1;end loop;return v_sumsal;end;

【调用方式】


declare
v_sum number(10) := 10;
//为total_count赋初值 10 ;
begin
dbms_output.put_line(get_salsum(80,v_sum)) ;
dbms_output.put_line(v_sum);end;

结果:工资总和、员工数

PLSQL-创建函数相关推荐

  1. oracle创建函数和调用存储过程和调用函数的例子(区别)

    创建函数: 格式:create or replace function func(参数 参数类型) Return number Is Begin --------业务逻辑--------- End; ...

  2. 使用plsql创建定时任务并执行

    2019独角兽企业重金招聘Python工程师标准>>> 前言~ 我们知道plsql工具的使用非常强大,使用它来创建存储过程以及定时任务都非常简单.上篇文章讲解到使用plsql创建存储 ...

  3. oracle创建包 和调用,oracle创建函数和调用存储过程和调用函数的例子(区别)...

    创建函数: 格式:create or replace function func(参数 参数类型) Return number Is Begin --------业务逻辑--------- End; ...

  4. plsql 常用函数

    PLSQL常用函数 1)处理字符的函数 || 或 CONCAT---并置运算符. 格式∶CONCAT(STRING1, STRING2) 例:'ABC'|| 'DE'='ABCDE' CONCAT(' ...

  5. 【Linux 内核】进程管理 ( 内核线程概念 | 内核线程、普通进程、用户线程 | 内核线程与普通进程区别 | 内核线程主要用途 | 内核线程创建函数 kernel_thread 源码 )

    文章目录 一.内核线程概念 二.内核线程.普通进程.用户线程 三.内核线程.普通进程区别 四.内核线程主要用途 五.内核线程创建函数 kernel_thread 源码 一.内核线程概念 直接 由 Li ...

  6. mysql创建函数1418_Mysql中创建函数报“ERROR 1418 ”的解决方法

    我们在使用mysql数据库开发项目的时候,有时Mysql系统自带的函数不能完全满足我们开发的需要,解决方法是自己创建函数,可以有可能在你创建函数的过程事会报出Error 1418错误,对于报这种错误的 ...

  7. mysql创建反弹函数,MySql创建函数

    首先需要查看一下创建函数的功能是否开启: X:\proper\mysql\bin>mysql -h localhost -u root -p Enter password: ********** ...

  8. Oracle 创建函数的权限

    Oracle 创建函数时提示 ORA-01031: insufficient privileges 错误,需管理员用户给当前用户增加创建 procedure 的权限,function 跟 proced ...

  9. JS中创建函数的几种方式

    使用 "函数声明" 创建函数 语法:* function 函数名([形参1,形参2...形参N]){* 语句...* } */function fun2(){console.log ...

  10. Numpy中数组创建函数的辨析

    首先推荐Numpy官方的教程,网址. 很多人会对数组创建函数的参数中什么时候要用括号np.zeros((2, 3)),什么时候不用括号np.eye(3, 5)感到疑惑,这里对它们统一进行梳理.(按照官 ...

最新文章

  1. Python + Selenium 自动发布文章(二):简书
  2. 每天5分钟玩转容器技术 ---- 系列文章
  3. 埃洛等级分系统【转自百度百科】
  4. [HOW TO]-ubuntu20.10环境上安装workpress
  5. Linux怎么对文件内容trim,Linux平台下SSD的TRIM指令的最佳使用方式(不区别对待NVMe)...
  6. 前端错误捕获终级方案
  7. MFC m_pMainWnd
  8. linux svn pacman,【图片】manjaro Linux 中的etc pacman.conf设置错误了,谁发个默认的我看看,谢谢大佬们了_manjaro吧_百度贴吧...
  9. jquery实现百度类似搜索提示功能(AJAX应用)
  10. 不兼容惹的祸,Calibre 作者拒绝迁移至 Python 3
  11. 2021-09-08321. 拼接最大数 单调栈
  12. java 时间计算_Java程序运行时间计算
  13. 黑白或彩色线稿地图设计定制装饰画中线条轮廓素材底图获取方法合集
  14. 高分三号卫星(GF-3)简介
  15. Linux下wm8978调试指南
  16. 13个免费资源网站,你想要的全都有!【各类宝藏资源,建议收藏】
  17. 内存溢出(OOM)及解决方案
  18. 凯文·凯利又出预言:未来科技将由这四股力量推动!
  19. 在LINUX环境下怎样设置无线网络配置
  20. std::uninitialized_copy::_Unchecked_iterators::_Deprecate

热门文章

  1. uefi怎么添加linux启动项,linux下添加UEFI启动项
  2. 黄圣池《你是我眼中的山川和海洋》
  3. Git仓库储藏和清理
  4. ubuntu12.04 set python2.7 opencv2.4.9
  5. Spring: Feign原理解析
  6. Java内部类以及类的加载顺序(一)
  7. MIPS指令集(学习中)
  8. 封装一个简陋的promise
  9. java的变量命名规则_java变量命名规则
  10. python mean dropna_dropna()标签问题