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

-- Created on 2018/9/30 by YANXUKUNcreate or replace procedure avgsal(v_job in scott.emp.job%type)isavgsal2 number;beginselect avg(sal) into avgsal2 from scott.emp where job = v_job;dbms_output.put_line(v_job || '---'|| avgsal2);end;

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

create or replace procedure p_sxtl(v_empno in scott.emp.empno%type,v_sal out scott.emp.sal%type)is  beginselect sal into v_sal from scott.emp where empno = v_empno;end;-- Created on 2018/9/30 by YANXUKUNdeclarev_empno scott.emp.empno%type := 7369;v_sal scott.emp.sal%type;beginp_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)isv_deptno emp.deptno%type;v_sal emp.sal%type;Beginselect 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_deptnowhen 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;调用存储过程:beginp_sxt2(7369);end;

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

create or replace function f_gongzi(v_empno scott.emp.empno%type)return scott.emp.sal%type isvr_sal scott.emp.sal%type;beginselect sal into vr_sal from scott.emp where empno = v_empno;return vr_sal;end;

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

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

6、创建一个存储过程,以员工号和部门号作为参数,修改员工所在的部门为所输入的部门号。

--如果修改成功,则显示“员工由……号部门调入调入……号部门”;如果不存在该员工,则显示

--“员工号不存在,请输入正确的员工号。”;如果不存在该部门,则显示

--“该部门不存在,请输入正确的部门号。”。

create or replace procedure p_deptno(v_empno in emp.empno%type,v_deptno in emp.deptno%type)asvu_empno number := 0 ;vu_deptno number :=0 ;vm_deptno emp.deptno%type;beginselect 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;

Oracle的基本操作(二:存储过程)相关推荐

  1. flash基本操作二-库面板和元件创建

    flash基本操作二-库面板和元件创建 在上一篇文章: flash基本操作中,我们详细讲解了制作逐帧动画的过程.本人最近用flash制作广告,对此非常的感兴趣,在本次的文章当中我们将继续介绍库面板和元 ...

  2. oracle中调用过程,oracle中如何调用存储过程

    oracle中如何调用存储过程 发布时间:2020-03-08 03:28:03 来源:51CTO 阅读:511 作者:lxg290 一.通过pls块来调用存储过程: declare p_dzno v ...

  3. oracle接收输入参数,Oracle带输入输出参数存储过程(包括sql分页功能)

    记录一下,免得以后忘记了又要到处去找. begin /*这里不能直接执行select语句但可以直接执行update.delete.insert语句*/ end里面不能接执行select语句,声明会话级 ...

  4. oracle存储过程生成单号,Oracle生成单据编号存储过程的实例代码

    Oracle生成单据编号存储过程,在做订单类似的系统都可能会存在订单编号不重复,或是流水号按日,按年,按月进行重新编号. 可以参考以下存储过程 CREATE OR REPLACE procedure ...

  5. oracle 定时任务 job 调用存储过程有回到输出参数(含out参数)

    oracle 定时任务 job 调用存储过程有返回输出参数(含out参数) 因前台调用一个含有OUT参数的存储过程,同时在JOB里也想调用同一个存储过程,不想将OUT参数去掉重新建一个存储过程再被JO ...

  6. Oracle ETL日志审计存储过程示例

    Oracle ETL日志审计存储过程示例 需求概述 在ETL中,为了方便跟踪每个步骤的执行情况,需要建立日志审计表来跟踪以便后期的跟踪与问题问题.本文就通过一个存储过程来实现对存储过程执行异常的跟踪( ...

  7. oracle 11gogg,【OGG】Oracle GoldenGate 11g (二) GoldenGate 11g 单向同步配置 上

    Oracle GoldenGate 11g (二) GoldenGate 11g 单向同步配置 上 Item Source System Target System Platform RHEL6.4 ...

  8. oracle基本的操作命令,oracle命令基本操作

    --创建表空间 create tablespace TBS_OTHERS datafile 'G:\APP\ORCL\ORADATA\ORCL\TBS_OTHERS01.dbf' size 1000m ...

  9. oracle:oracle基础知识(二)

    oracle基础知识(二)笔记:高级查询 文章目录 分组查询 多属性分组语法: 过滤查询 group by 语句增强 sqlplus报表功能 多表查询 等值连接 外连接 自连接 子查询 子查询中的空值 ...

  10. oracle存储过程插入自动编号,Oracle生成单据编号存储过程的实例代码

    Oracle生成单据编号存储过程,在做订单类似的系统都可能会存在订单编号不重复,或是流水号按日,按年,按月进行重新编号. 可以参考以下存储过程 0 then if DIsAutoCreate=1 TH ...

最新文章

  1. ARIMA模型之疏系数模型
  2. Python3爬取影片入库
  3. java close wait过多_HttpClient当HTTP连接的时候出现大量CLOSE_WAIT连接
  4. 五大开源MySQL管理工具!
  5. secs/gem协议系统通讯平台
  6. 怎样恢复计算机程序打开文件名,Word提示如何解决使用文本恢复转换器打开文件的问题...
  7. 安装谷歌服务框架2022最新版本22.45.15失败
  8. Android | 安卓好用软件来袭,多御安全浏览器免费又强大
  9. 今天写了个自定义函数验证身份证号是否符合规则
  10. Png图片换色的方法
  11. 虚拟化服务器授权,VMware授权变相收费? 虚拟化一大障碍
  12. ASP.NET 中验证的自定义返回和统一社会信用代码的内置验证实现
  13. 腾讯微服务框架 Tars 的 Go 性能提升之路
  14. [效率提升]webstorm配置Prettier:代码自动格式,格式化时清除空行,修改使用代码模板
  15. php riak,PHP操作Riak
  16. SCOUT 薄膜分析软件
  17. 蓝牙5.1之Direction Finding
  18. Android OpenGl ES使用原理总结与代码示例
  19. 【数据分析师】000-如何学习数据分析
  20. php获取后面参数?id=进行判断参数跳转目标站

热门文章

  1. mac tomcat https
  2. python如何实现找图_利用OpenCV和Python实现查找图片差异
  3. uniapp自定义导航栏样式,自定义导航栏组件使用说明,兼容小程序和H5及各端
  4. React 组件绑定点击事件,并且传参完整Demo
  5. DOS、Mac 和 Unix 文件格式+ UltraEdit使用
  6. Activity的LaunchMode
  7. nio selector
  8. Bzoj4566:[HAOI2016]找相同字符
  9. Win10系列:JavaScript动画2
  10. eBay宣布发布全新的购买和销售APIs