--根据人名查个人薪水和本部门平均薪水
--select语句实现
select a.deptno  "部门编号",
a.dname   "部门名称",
a.ename   "姓名",
a.sal     "薪水",
b.avg_sal "部门平均薪水"
from (select d.deptno, d.dname, e.ename, sal + nvl(comm, 0) sal
from emp e
join dept d on e.deptno = d.deptno
where ename = '&name') a
join (select deptno, avg(sal + nvl(comm, 0)) avg_sal
from emp
where deptno in (select deptno from emp where ename = '&name')
group by deptno) b on a.deptno = b.deptno;
--匿名块实现
declare
v_deptno  emp.deptno%type;
v_dname   dept.dname%type;
v_ename   varchar(20);
v_sal     emp.sal%type;
v_avg_sal emp.sal%type;
begin
v_ename := '&请输入姓名:';
select deptno into v_deptno from emp where ename = v_ename;
dbms_output.put_line('部门编号:' || v_deptno);
select dname into v_dname from dept where deptno = v_deptno;
dbms_output.put_line('部门名称:' || v_dname);
dbms_output.put_line('员工姓名:' || v_ename);
select sal + nvl(comm, 0) into v_sal from emp where ename = v_ename;
dbms_output.put_line('员工薪水:' || v_sal);
select avg(sal + nvl(comm, 0))
into v_avg_sal
from emp
where deptno = v_deptno;
dbms_output.put_line('部门平均薪水:' || v_avg_sal);
end;
--游标存储过程实现(无select语句)
create or replace procedure p1011(v_ename in emp.ename%type) is
cursor c is select * from emp;
cursor cd is select * from dept;
v_sal emp.sal%type;
v_avg_sal emp.sal%type := 0;
v_dname dept.dname%type;
v_deptno dept.deptno%type;
v_n number := 0;
begin
for v_emp in c loop
if v_emp.ename = v_ename then
v_sal := v_emp.sal + nvl(v_emp.comm,0);
v_deptno := v_emp.deptno;
end if;
end loop;
for v_dept in cd loop
if v_dept.deptno = v_deptno then
v_dname := v_dept.dname;
end if;
end loop;
for v_emp in c loop
if v_emp.deptno = v_deptno then
v_avg_sal := v_avg_sal + v_emp.sal + nvl(v_emp.comm,0);
v_n := v_n + 1;
end if;
end loop;
v_avg_sal := v_avg_sal / v_n;
dbms_output.put_line('员工姓名:' || v_ename);
dbms_output.put_line('员工薪水:' || v_sal);
dbms_output.put_line(v_dname || '部门的平均薪水是:' || v_avg_sal);
end;

Oracle plsqlI 练习 传值相关推荐

  1. 【转】oracle PLSQL基础学习

    [转]oracle PLSQL基础学习 --oracle 练习: /**************************************************PL/SQL编程基础****** ...

  2. oracle数据库再深入(四)

    游标 http://www.cnblogs.com/huyong/archive/2011/05/04/2036377.html 概念: 在PL/SQL块中执行SELECT.INSERT.DELETE ...

  3. Java从入门到精通——数据库篇之JAVA中的对Oracle数据库操作

    在Java中对Oracle数据库的操作分为两种:一.查询.二.非查询. 下面是我对其进行总结: 一.查询数据 /** * 根据用户代码查询* @param userId* @return 如果存在返回 ...

  4. C#创建Oracle中的几何对象:点、线、面

    最初写这个程序是应老大的要求解决"更新Oracle中的空间数据时会因为wkt字符串太长而报错"这个问题,之前的更新都是在程序中插入一条SQL语句来进行更新,由于SQL语句本身的一些 ...

  5. Oracle自定义函数

    2019独角兽企业重金招聘Python工程师标准>>> Oracle自定义函数 用户定义函数是存储在数据库中的代码块,可以把值返回到调用程序.调用时如同系统函数一样,如max(val ...

  6. Oracle 把过程与函数说透

    本篇主要内容如下:  6.1 引言 6.2 创建函数 6.3 存储过程 6.3.1 创建过程 6.3.2 调用存储过程 6.3.3 AUTHID 6.3.4 PRAGMA AUTONOMOUS_TRA ...

  7. Oracle 把游标说透

    本篇主要内容如下: 4.1 游标概念 4.1.1 处理显式游标 4.1.2 处理隐式游标 4.1.3 关于 NO_DATA_FOUND 和 %NOTFOUND的区别 4.1.4  使用游标更新和删除数 ...

  8. oracle 查询创建的全文索引,CSS_oracle全文搜索创建与使用示例,说明:使用全文索引需要使用 - phpStudy...

    oracle全文搜索创建与使用示例 说明:使用全文索引需要使用词法分析器,什么叫词法分析器呢,如:你想搜索"中国人",那么数据库的底层就会给你以"中国".&qu ...

  9. oracle 值集附加列,EBS值集知识小结

    oracle ebs系统允许开发人员定义自己的值集,以满足特定的需要,在EBS中定义值集的简单步骤如下: 图1:进入值集定义功能界面 在"应用开发员"职责下,进入值集定义功能. 图 ...

最新文章

  1. js 光标移动到输入框最后位置函数
  2. javascript 计算两个坐标的距离 米_土方全面应用计算
  3. Java IO类库之ObjectInputStream和ObjectOutPutStream
  4. 天池 在线编程 回文子串(区间动态规划)
  5. poj 3101Astronomy(圆周追击+分数最小公倍数)
  6. Android笔记-ERROR: Invalid revision: 3.17.20200511-g8787079
  7. mysql 时间函数大全_mysql常用的日期函数汇总
  8. 微信公众开放平台开发06---复习一下servlet
  9. CentOS Repos
  10. mysqli_connect参数的写法以及如何设置特定端口
  11. linux shell 后台执行脚本的方法 脚本后台运行 后台运行程
  12. PHP mcrypt可逆加密算法分析
  13. NI.LabVIEW.v8.6.1.FPGA.Module-ISO 2CD(FPGA开发)
  14. JavaMail的使用
  15. 9 Nextflow configuration
  16. java公交路线查询微信小程序源码
  17. c++builder:Project Project1.exe raised exception class EAccessViolation with message 'Access violati
  18. python计算excel crc_Python实现CRC计算器
  19. 沃尔玛跨境智星的介绍与用法
  20. twitter无手机号检查_如何检查Twitter帐户是否为Bot

热门文章

  1. Problem B: C语言习题 矩阵元素变换
  2. 关于Istio 1.1,你所不知道的细节
  3. nodejs MVC
  4. 《我的第一本c++书》读后感
  5. 在Linux下快速搭建LAMP开发平台.doc
  6. Oracle 自带sqldeveloper导入数据到表
  7. office高级应用与python综合案例教程_office高级应用与python综合案例实验指导--详细介绍...
  8. 小学数学动画 android,小学数学动画教学下载-小学数学动画 安卓版v5.0-pc6手机下载...
  9. web浏览器_Web上的分享(Share)API
  10. 总结计算机语言的基本元素,认识程序设计中基本元素教案.doc