1、编写一个存储过程,根据输入的工作类型,输出该工作的平均工资。

命令如下:

创建存储过程:

create or replace procedure avgsal(v_job in emp.job%type)
is
avgsal2 number
begin
select avg(sal) into avgsal2 from emp where job=v_job;
dbms_output.put_line(v_job || '---' || avgsal2)
end;
调用存储过程:

Begin
avgsal('MANAGER');
end;
程序截图:

运行结果:

2、创建一个存储过程,以员工号为参数,输出该员工的工资。

命令如下:

创建存储过程:

create or replace procedure p_sxtl(v_empno in emp.empno%type,v_sal out emp.sal%type)
is
begin
select sal into v_sal from emp where empno=v_empno;
end;
调用存储过程:

declare
v_empno emp.empno%type :=7369;
v_sal emp.sal%type;
begin
p_sxtl(v_empno,v_sal);
dbms_output.put_line(v_empno || '员工的工资为:' || v_sal);
end;
程序截图:

运行结果:

3、创建一个存储过程,以员工号为参数,修改该员工的工资。若该员工属于10号部门,则工资增加150;若属于20号部门,则工资增加200;若属于30号部门,则工资增加250;--若属于其他部门,则增加300。

命令如下:

创建存储过程:

create or replace procedure p_sxt2(v_empno in emp.empno%type)
is
v_deptno emp.deptno%type;
v_sal emp.sal%type;
Begin
select deptno into v_deptno from emp where empno=v_empno;
select sal into v_sal from emp where empno=v_empno;
dbms_output.put_line(v_empno || '的部门是' || v_deptno || '修改前的工资是' || v_sal);
case v_deptno
when 10 then update emp set sal=sal+150 where empno=v_empno;
when 20 then update emp set sal=sal+200 where empno=v_empno;
when 30 then update emp set sal=sal+250 where empno=v_empno;
else update emp set sal=sal+300 where empno=v_empno;
end case;
select sal into v_sal from emp where empno=v_empno;
dbms_output.put_line(v_empno || '部门是' || v_deptno || '修改后的工资是:' || v_sal);
commit;
end;
调用存储过程:

begin
p_sxt2(7369);
end;
程序截图:

运行结果:

3、创建一个函数,以员工号为参数,返回该员工的工资。

命令如下:

创建函数:

create or replace function f_sxtl(v_empno in emp.empno%type,v_sal out emp.sal%type)
return emp.sal%type
as
begin
select sal into v_sal from emp where empno=v_empno;
return v_sal;
end;
调用函数:

Begin
:result := f_sxtl(7369,v_sal => :v_sal);
end;
程序截图:

运行结果:

4、创建一个函数,以员工号为参数,返回该员工所在的部门的平均工资。

命令如下:

创建函数:

create or replace function avegsal(v_empno in emp.empno%type)
return emp.sal%type
as
avgsal2 emp.sal%type;
begin
-- Test statements here
select avg(sal) into avgsal2 from emp where deptno = (select deptno from emp where empno=v_empno);
return avgsal2;
end;
调用函数:

begin
:result := avegsal(7369);
end;
程序截图:

运行结果:

5、创建一个存储过程,以员工号和部门号作为参数,修改员工所在的部门为所输入的部门号。如果修改成功,则显示“员工由……号部门调入调入……号部门”;如果不存在该员工,则显示“员工号不存在,请输入正确的员工号。”;如果不存在该部门,则显示“该部门不存在,请输入正确的部门号。”

命令如下:

创建存储过程:

create or replace procedure p_deptno(v_empno in emp.empno%type,v_deptno in emp.deptno%type)
as
vu_empno number := 0 ;
vu_deptno number :=0 ;
vm_deptno emp.deptno%type;
begin
select deptno into vm_deptno from emp where empno=v_empno;
select count(*) into vu_empno from emp where empno=v_empno;
select count(distinct deptno) into vu_deptno from emp where deptno=v_deptno;
if vu_empno=0 then dbms_output.put_line('员工号不存在,请输入正确的员工号.');
end if;
if vu_deptno=0 then dbms_output.put_line('该部门不存在,请输入正确的部门号.');
end if;
if vu_empno=1 and vu_deptno=1 then dbms_output.put_line('员工由' || vm_deptno || '号部门调入' || v_deptno || '号部门');
update emp set deptno=v_deptno where empno=v_empno;
commit;
end if;
end;
调用存储过程:

(1)begin
p_deptno(7369,40);
end;
(2)begin
p_deptno(7369,10);
end;
程序截图:

(2)

运行结果:

(1)

(2)

---------------------

PLSQL练习-数据共享与整合技术的更多相关文章

  1. 7:CSS Sprites的原理(图片整合技术)

    7:CSS Sprites的原理(图片整合技术) 一.将导航背景图片,按钮背景图片等有规则的合并成一张背景图,即将多张图片合为一张整图,然后用background-position”来实现背景图片的定 ...

  2. CSS Sprites的原理(图片整合技术)(CSS精灵)/雪碧图

    CSS Sprites的原理(图片整合技术)(CSS精灵)/雪碧图   一.将导航背景图片,按钮背景图片等有规则的合并成一张背景图,即将多张图片合为一张整图,然后用background-positio ...

  3. 统一门户与业务系统的sso整合技术方案(单点登录)

    一.单点登录(SSO,Single Sign On)整合目前计划接入统一门户的所有业务系统均为基于JavaEE技术的B/S架构系统.由于统一门户的单点登录技术选用的是JA-SIG组织开发的Cas Se ...

  4. springMVC:校验框架:多规则校验,嵌套校验,分组校验;ssm整合技术

    知识点梳理 课堂讲义 学习目标 能够阐述表单验证的分类和区别 能够运用表单验证的常用注解 能够编写表单验证的示例 能够编写SSM整合的应用案例 能够总结SSM整合的步骤 1 校验框架 1.1 入门-视 ...

  5. Spring 整合 Hibernate

    Spring 整合 Hibernate •Spring 支持大多数流行的 ORM 框架, 包括 Hibernate JDO, TopLink, Ibatis 和 JPA. •Spring 对这些 OR ...

  6. 王家林的81门一站式云计算分布式大数据&移动互联网解决方案课程第14门课程:Android软硬整合设计与框架揭秘: HAL&Framework &Native Service &App&HTML5架构设计与实战开发

    掌握Android从底层开发到框架整合技术到上层App开发及HTML5的全部技术: 一次彻底的Android架构.思想和实战技术的洗礼: 彻底掌握Andorid HAL.Android Runtime ...

  7. 大数据技术人年度盛事! BDTC 2016将于12月8-10日在京举行

    2016年12月8日-10日,由中国计算机学会(CCF)主办,CCF大数据专家委员会承办,中国科学院计算技术研究所和CSDN共同协办的2016中国大数据技术大会(Big Data Technology ...

  8. Android架构设计和软硬整合完整训练

    Android架构设计和软硬整合完整训练 Android架构设计和软硬整合完整训练:HAL&Framework&Native Service&Android Service&a ...

  9. Spring框架的第四天(整合ssh框架)

    ## Spring框架的第四天 ## ---------- **课程回顾:Spring框架第三天** 1. AOP注解方式 * 编写切面类(包含通知和切入点) * 开启自动代理 2. JDBC模板技术 ...

随机推荐

  1. 二Java的常量与变量-1-1标识符

    类的名字就是标识符 起类名也是不能带空格的

  2. ajax 的三种使用方法

    第一种 也是最古老的一种方法之一 from 表单直接提交数据到php文件里 action为路径 <form method="post" action="./inde ...

  3. [Xcode 实际操作]七、文件与数据-(16)解析XML文档

    目录:[Swift]Xcode实际操作 本文将演示如何解析XML文档. 项目中已添加一份XML文档:worker.xml <?xml version="1.0" encodi ...

  4. [Xcode 实际操作]一、博主领进门-(11)代码区的样式设置,设置模拟器启动的声音

    目录:[Swift]Xcode实际操作 本文将演示如何对Xcode代码区进行样式设置,从而调整代码的外观属性.随便打开一份代码文件. [Xcode]->[Preferences]参数设置-> ...

  5. 多线程中join()

    这个鬼东西百度了好久没弄明白,大佬们代码一粘贴好了完事,借助官方api终于是理解了,当然如果有问题欢迎大家用键盘来羞辱我. 首先  join有什么用?   他是用来确定线程何时结束的 , Thread ...

  6. Spring security + oauth2.0 + redis + mybatis plus 搭建微服务

    上个星期一个朋友请求帮忙,让我搭建一个分布式授权中心的微服务,之前我也没搭建过,在网上撸了几天前辈们写的技术博客,搞出个模型,分享给大家: 前辈们博客地址: OAuth2.0 原理:https://b ...

  7. Csc”任务不支持“SharedCompilationId”参数。请确认该参数存在于此任务中,并且是可设置的公共实例属性

    今天.NetCore2.1版本,建立Asp.net Core web应用程序项目时,报以下错误: 未能使用“Csc”任务的输入参数初始化该任务. “Csc”任务不支持“SharedCompilatio ...

  8. Gym - 101810B ACM International Collegiate Programming Contest (2018)

    bryce1010模板 http://codeforces.com/gym/101810 #include <bits/stdc++.h> using namespace std; #de ...

  9. bryce1010专题训练——LCT&&树链剖分

    LCT&&树链剖分专题 参考: https://blog.csdn.net/forever_wjs/article/details/52116682

  10. 洛谷 P2231 [HNOI2002]跳蚤

    https://www.luogu.org/problemnew/show/P2231 题意相当于:有n个位置a[1..n],每个位置可以填[1,m]中任一个整数,问共有多少种填法满足gcd(a[1] ...