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

create or replace procedure pro_s(v_a number,v_b number,v_c number) is
-- 声明变量
v_sum number(10,2);
begin
-- 计算三角形的面积
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));
-- 打印输出
dbms_output.put_line('三角形的面积是:'||v_sum);
end; -- 调用
call pro_s(3,4,5);

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

create or replace function fun_s(v_a number,v_b number,v_c number)return number is
-- 声明函数
v_sum number(10,2);
begin
-- 计算圆的面积
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));
-- 返回值
return v_sum;
end; declare
-- 声明变量 变量和 function中的 类型相同
v_sum number(10,2); begin
v_sum:=fun_s(3,4,5);
dbms_output.put_line('三角形的面是:'||v_sum);
end;

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

create or replace procedure pro_emp(v_deptno number,v_dname out varchar2, v_count out number,v_vag out number)
is
begin 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; end; declare
---v_deptno emp.deptno%type;
v_dname dept.dname%type;
v_count emp.deptno%type;
v_vag emp.sal%type;
begin
pro_emp(10,v_dname,v_count ,v_vag);
dbms_output.put_line('员工姓名'||v_dname||'总人数'||v_count||'平均值'||v_vag);
end;
4,编写一个PL/SQL块,输出所有员工的员工姓名、员工号、工资和部门号
create or replace procedure pro_emp3 is
type emp_record_type is record(
empno emp.empno%type,
ename emp.ename%type,
sal emp.sal%type,
deptno emp.deptno%type
);
type emp_table_type is table of emp_record_type
index by binary_integer;
v_emp emp_table_type;
begin
select empno,ename,sal,deptno bulk collect into v_emp from emp;
for v_i in v_emp.first ..v_emp.last
loop
dbms_output.put_line('员工编号'||v_emp(v_i).empno||
'员工姓名'||v_emp(v_i).ename||
'基本工资'||v_emp(v_i).sal||
'部门编号'||v_emp(v_i).deptno);
end loop;
end;
begin pro_emp3(); end;

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


create or replace procedure pro_emp1(v_empno number,v_emno out number,v_ename out varchar2,v_dname out varchar2)is

begin
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;
end; declare
v_emno emp.empno%type;
v_ename emp.ename%type;
v_dname dept.dname%type;
--v_deptno emp.deptno%type;
begin
pro_emp1(7369,v_emno,v_ename,v_dname) ;
dbms_output.put_line('员工编号'||v_emno||'员工姓名'||v_ename||'部门名称'||v_dname); end;

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

create or replace procedure pro_emp2 is
type emp_record_type is record(
empno emp.empno%type,
ename emp.ename%type,
deptno emp.deptno%type,
mname emp.ename%type); type emp_table_type is table of emp_record_type
index by binary_integer; v_emp emp_table_type;
begin
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;
for v_i in v_emp.first .. v_emp.last
loop
dbms_output.put_line('员工编号:'||v_emp(v_i).empno||
'员工姓名:'||v_emp(v_i).ename||
'领导姓名:'||v_emp(v_i).mname||
'部门编号:'||v_emp(v_i).deptno);
end loop;
end; begin
pro_emp2();
end;
 

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. ZROI-Day2比赛解题报告

    ZROIDay2-比赛解题报告 版权原因不提供题面信息 序 这几天作息有点鬼畜,虽然昨晚很晚睡但是早上精神还不错,看到题发现T1很友好?T2woc这暴力都好难打?T3多项式?!这样下去比赛会不会出现更 ...

  2. mysq练习

    表名和字段 –1.学生表Student(s_id,s_name,s_birth,s_sex) --学生编号,学生姓名, 出生年月,学生性别–2.课程表Course(c_id,c_name,t_id) ...

  3. Unknown column '字段名' in 'field list' 错误解决方案

    当后台报这个错误的时候,说明实体类中的字段名出错了,解决方案: 1,检查数据库中的字段名与实体类中的字段名是否一致,特别要注意单词字母, 2,检查数据库中的字段是否与实体类中的字段一致.比如数据库中没 ...

  4. JS的 delete操作符 删除对象属性

    JS如何删除对象中的某一属性 var obj={ name: 'zhagnsan', age: 19 } delete obj.name //true typeof obj.name //undefi ...

  5. wabacus JaveEE开发框架

    http://www.wabacus.org/ css学习网站:http://www.divcss5.com/rumen/r422.shtml

  6. Centos7查不出ip地址

    今天遇到了这个问题,解决后记录一下: //输入查询命令 ifconfig或者ip addr 如图,是显示不出信息的 找到ens33的配置文件,输入命令 vi /etc/sysconfig/networ ...

  7. 关于api接口以及页面数据通信域名,缓存cdn设置优化

    以B站为例: 主域名:www.bilibili.com 账户登录注册相关域名,包括app登录:passport.bilibili.com 静态资源css,js,img等相关域名:static.bili ...

  8. 【Day2】1.循环结构

     视频地址(全部) https://edu.csdn.net/course/detail/26057 课件地址(全部) https://download.csdn.net/download/gentl ...

  9. 原创:(一)TCP/IP学习笔记之概述

    端到端论点和命运共享其实不应该在底层,差错控制应该在应用程序附近来实现.这是因为考虑了连接,而不是传输的准确,因为差错可以根据某些算法(通信中的滤波等)来恢复,不过在大面积网络出现问题的时候有必要进行 ...

  10. Nginx的入门

    Nginx 入门 一.正向代理和反向代理 1.正向代理 正向代理(forward proxy) ,一个位于客户端和原始服务器之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并制定目标( ...