1、编写过程,输入三角形三个表的长度。在控制台打印三角形的面积。

  1. create or replace procedure pro_s(v_a number,v_b number,v_c number) is
  2. -- 声明变量
  3. v_sum number(10,2);
  4. begin
  5. -- 计算三角形的面积
  6. v_sum:=1/4*sqrt((v_a+v_b+v_c)*(v_a+v_b-v_c)*(v_a+v_c-v_b)*(v_b+v_c-v_a));
  7. -- 打印输出
  8. dbms_output.put_line('三角形的面积是:'||v_sum);
  9. end;
  10.  
  11. -- 调用
  12. call pro_s(3,4,5);

2、编写函数,输入三角形三个表的长度。在控制台打印三角形的面积

  1. create or replace function fun_s(v_a number,v_b number,v_c number)return number is
  2. -- 声明函数
  3. v_sum number(10,2);
  4. begin
  5. -- 计算圆的面积
  6. v_sum:=1/4*sqrt((v_a+v_b+v_c)*(v_a+v_b-v_c)*(v_a+v_c-v_b)*(v_b+v_c-v_a));
  7. -- 返回值
  8. return v_sum;
  9. end;
  10.  
  11. declare
  12. -- 声明变量 变量和 function中的 类型相同
  13. v_sum number(10,2);
  14.  
  15. begin
  16. v_sum:=fun_s(3,4,5);
  17. dbms_output.put_line('三角形的面是:'||v_sum);
  18. end;

3、写一个过程,输入部门编号,在控制台打印这个部门的名称,总人数,平均工资(基本工资+奖金)

  1. create or replace procedure pro_emp(v_deptno number,v_dname out varchar2, v_count out number,v_vag out number)
  2. is
  3. begin
  4.  
  5. select d.dname,count(e.ename),avg(sal+nvl(comm,0))into v_dname,v_count,v_vag from emp e inner join dept d on e.deptno=d.deptno where e.deptno=v_deptno group by e.deptno,d.dname;
  6.  
  7. end;
  8.  
  9. declare
  10. ---v_deptno emp.deptno%type;
  11. v_dname dept.dname%type;
  12. v_count emp.deptno%type;
  13. v_vag emp.sal%type;
  14. begin
  15. pro_emp(10,v_dname,v_count ,v_vag);
  16. dbms_output.put_line('员工姓名'||v_dname||'总人数'||v_count||'平均值'||v_vag);
  17. end;
  1. 4,编写一个PL/SQL块,输出所有员工的员工姓名、员工号、工资和部门号
  1. create or replace procedure pro_emp3 is
  2. type emp_record_type is record(
  3. empno emp.empno%type,
  4. ename emp.ename%type,
  5. sal emp.sal%type,
  6. deptno emp.deptno%type
  7. );
  8. type emp_table_type is table of emp_record_type
  9. index by binary_integer;
  10. v_emp emp_table_type;
  11. begin
  12. select empno,ename,sal,deptno bulk collect into v_emp from emp;
  13. for v_i in v_emp.first ..v_emp.last
  14. loop
  15. dbms_output.put_line('员工编号'||v_emp(v_i).empno||
  16. '员工姓名'||v_emp(v_i).ename||
  17. '基本工资'||v_emp(v_i).sal||
  18. '部门编号'||v_emp(v_i).deptno);
  19. end loop;
  20. end;
  21. begin
  22.  
  23. pro_emp3();
  24.  
  25. end;
  1.  

5、编写一个存储过程,输入一个员工编号,输出该员工的员工编号,员工姓名,部门名称。

  1.  
  1. create or replace procedure pro_emp1(v_empno number,v_emno out number,v_ename out varchar2,v_dname out varchar2)is
  2.  
  3. begin
  4. select e.empno,e.ename,d.dname into v_emno,v_ename,v_dname from emp e inner join dept d on d.deptno=e.deptno where empno=v_empno;
  5. end;
  6.  
  7. declare
  8. v_emno emp.empno%type;
  9. v_ename emp.ename%type;
  10. v_dname dept.dname%type;
  11. --v_deptno emp.deptno%type;
  12. begin
  13. pro_emp1(7369,v_emno,v_ename,v_dname) ;
  14. dbms_output.put_line('员工编号'||v_emno||'员工姓名'||v_ename||'部门名称'||v_dname);
  15.  
  16. end;
  1.  

6、编写一个存储过程,输出所有员工及其部门领导的姓名、员工号及部门号。

  1. create or replace procedure pro_emp2 is
  2. type emp_record_type is record(
  3. empno emp.empno%type,
  4. ename emp.ename%type,
  5. deptno emp.deptno%type,
  6. mname emp.ename%type);
  7.  
  8. type emp_table_type is table of emp_record_type
  9. index by binary_integer;
  10.  
  11. v_emp emp_table_type;
  12. begin
  13. select e.empno,e.ename,e.deptno,m.ename mname bulk collect into v_emp from emp e inner join emp m on e.empno=m.mgr;
  14. for v_i in v_emp.first .. v_emp.last
  15. loop
  16. dbms_output.put_line('员工编号:'||v_emp(v_i).empno||
  17. '员工姓名:'||v_emp(v_i).ename||
  18. '领导姓名:'||v_emp(v_i).mname||
  19. '部门编号:'||v_emp(v_i).deptno);
  20. end loop;
  21. end;
  22.  
  23. begin
  24. pro_emp2();
  25. end;
  1.  

pl/sql 过程 函数(写一个过程,输入部门编号,在控制台打印这个部门的名称,总人数,平均工资(基本工资+奖金))的更多相关文章

  1. ORACLE PL/SQL编程之六:把过程与函数说透(穷追猛打,把根儿都拔起!)

    原文:ORACLE PL/SQL编程之六:把过程与函数说透(穷追猛打,把根儿都拔起!) ORACLE PL/SQL编程之六: 把过程与函数说透(穷追猛打,把根儿都拔起!)   继上篇:ORACLE P ...

  2. oracle pl/sql简介、块、过程

    pl/sql语言是oracle在sql上扩展的语言.1 过程.函数.触发器是在pl/sql编写2 过程.函数.触发器是在oracle中3 pl/sql的语句可以在java中直接调用 简单介绍 在sql ...

  3. Netsuite Formula > Oracle函数列表速查(PL/SQL单行函数和组函数详解).txt

    PL/SQL单行函数和组函数详解 函数是一种有零个或多个参数并且有一个返回值的程序.在SQL中Oracle内建了一系列函数,这些函数都可被称为SQL或PL/SQL语句,函数主要分为两大类: 单行函数 ...

  4. oracle pl/sql split函数

    在软件开发过程中程序员经常会遇到字符串的拼接和拆分工作. 以java开发为例: 前台传入字符串拼接形式的一个JSON数据,如:"1001,1002,1003",这可能代表了一组序号 ...

  5. PL/SQL中直接写SQL语句和用EXECUTE IMMEDIATE方法的区别

    PL/SQL中直接写SQL语句和用EXECUTE IMMEDIATE方法的区别 在PL/SQL中在执行SQL语句时可以直接写SQL或者可以把一个SQL语句拼成一个字符串,如下: select * fr ...

  6. PL/SQL规范、块、过程、函数、包、触发器

    1.pl/sql规范 标识符号的命名规范 1) 定义变量,用 v- 作为前缀 v-sal 2)定义常亮, 用 c- 作为前缀 c-rate 3) 定义游标,用 cursor作为后缀 emp_curso ...

  7. PL/SQL之--函数

    一.函数 函数是作为数据库对象存储在oracle数据库中,函数又被称为PL/SQL子程序.oracle处理使用系统提供的函数之外,用户还可以自己定义函数.函数通常被作为一个表达式来调用或存储过程的一个 ...

  8. PL/SQL自定义函数

    从SQL表达式中调用函数的限制 为了从SQL表达式中调用函数,一个用户定义函数必须: 是存储函数 只接受IN函数 只接收有受的SQL数据类型,而不接受PL/SQL数据类型 返回数据类型为有效的SQL数 ...

  9. PL/SQL快键键——自动替换(输入sf直接跳出来select * from)

    PL/SQL Developer使用技巧.快捷键 1.类SQL PLUS窗口:File->New->Command Window,这个类似于oracle的客户端工具sql plus,但比它 ...

随机推荐

  1. Oracle update 多字段更新

    一次性update多个字段 以student表为例: -- 创建学生表 create table student ( id number, name varchar2(40), age number, ...

  2. 微信小程序返回箭头跳转到指定页面

    onUnload: function () { wx.reLaunch({ url: '../me/order-detail', }) },//这里url搞相对路径 wx.reLaunch跳到新页面没 ...

  3. element-ui Cascader 级联选择器 点击label选中

    通过修改label的样式解决: 注意:el-cascader-panel 是直接挂载在body上的,所以需要全局设置 .el-cascader-panel .el-radio{ width: 100% ...

  4. 解决Windows下文件无法删除的问题

    一.文件正在使用,文件已在另一程序中打开 图1已经提示了文件具体在哪个程序打开,在任务管理器结束相应的进程就可以删除文件了. 图2其实才是问题关键,怎样知道文件到底被哪个程序占用的呢? 解: Win+ ...

  5. MySQL添加唯一索引

    1 语法如下 ALTER TABLE `t_user` ADD unique(`username`);

  6. 第七章·Logstash深入-收集NGINX日志

    1.NGINX安装配置 源码安装nginx 因为资源问题,我们先将nginx安装在Logstash所在机器 #安装nginx依赖包 [root@elkstack03 ~]# yum install - ...

  7. 2.Nginx基本配置

    1. Nginx相关概念 代理服务器一般分为正向代理(通常直接称为代理服务器)和反向代理. 通常的代理服务器,只用于代理内部网络对Internet的连接请求,客户机必须指定代理服务器,并将本来要直接发 ...

  8. 4.Shell 判断用户的参数

    1.Shell 判断用户的参数 系统在执行mkdir命令时会判断用户输入的信息,即判断用户指定的文件夹名称是否已经存在,如果存在则提示报错:反之则自动创建. Shell脚本中的条件测试语法可以判断表达 ...

  9. mysql.sock丢失问题

    执行下面命令即可 /usr/local/bin/mysqld_safe 摘录于:https://blog.csdn.net/qq_20008173/article/details/87280834

  10. maven的配置和eclipse maven插件安装

    1.下载maven:http://maven.apache.org/download.cgi 2. 配置环境变量: 3. 修改maven文件夹下bin/conf/settings.xml:maven仓 ...