Oracle 练习P297 131026 PL/SQL块程序

--1、编写一个PL/SQL块,输出所有员工的员工姓名,员工号、工资和部门号。
begin
for v_emp in (select * from emp) loop
dbms_output.put('员工姓名:' || v_emp.ename);
dbms_output.put(',员工号:' || v_emp.empno);
dbms_output.put(',工资:' || v_emp.sal);
dbms_output.put_line(',部门号:' || v_emp.deptno);
end loop;
end;
--2、编写一个PL/SQL块,输出所有比本部门平均工资高的员工信息。
begin
for v_emp in (select e.*
from emp e
join (select deptno, avg(sal) avg_sal
from emp
group by deptno) t on e.deptno = t.deptno
where e.sal > t.avg_sal
order by e.deptno) loop
dbms_output.put('员工姓名:' || v_emp.ename);
dbms_output.put(',员工号:' || v_emp.empno);
dbms_output.put(',工资:' || v_emp.sal);
dbms_output.put_line(',部门号:' || v_emp.deptno);
end loop;
end;
--3、编写一个PL/SQL块,输出所有员工及其部门领导的姓名、员工号及部门号。
begin
for v_emp in (select e1.empno a,
e1.ename b,
e1.deptno c,
e2.ename d,
e2.empno e,
e2.deptno f
from emp e1
join emp e2 on e1.mgr = e2.empno) loop
dbms_output.put('员工姓名:' || v_emp.a);
dbms_output.put('员工员工号:' || v_emp.b);
dbms_output.put('员工部门号:' || v_emp.c);
dbms_output.put(',领导姓名:' || v_emp.d);
dbms_output.put(',领导员工号:' || v_emp.e);
dbms_output.put_line(',领导部门号:' || v_emp.f);           
end loop;
end;
--4、查询姓为“SMITH”的员工信息,并输出其员工号、姓名、工资、部门号。
--如果该员工不存在,则插入一条新记录,员工号为2012,员工姓为“SMITH”,工资为7500元,
--入职日期为“2002年3月5日”,部门号为50,如果存在多个名为“SMITH”的员工,
--则输出所有名为“SMITH”的员工号、姓名、工资、入职日期、部门号L。
--delete from emp2 where ename = 'SMITH';
declare
v_exist number(1);
begin
select count(*) into v_exist from emp2 where ename = 'SMITH';
--dbms_output.put_line(v_exist);
if v_exist = 0 then
insert into emp2(empno,ename,sal,hiredate,deptno) values('2012','SMITH',7500,to_date('20020305','yyyymmdd'),50);
commit;
elsif v_exist >= 1 then
for v_emp in (select * from emp2 where ename='SMITH') loop
dbms_output.put_line('员工号:' || v_emp.empno);
dbms_output.put_line('姓名:' || v_emp.ename);
dbms_output.put_line('工资:' || v_emp.sal);
dbms_output.put_line('入职日期:' || v_emp.hiredate);
dbms_output.put_line('部门号:' || v_emp.deptno);
end loop;
else null;
end if;
end;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/545511.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

操作系统习题

操作系统习题习题一一、选择习题二一、选择二、综合题习题三一、选择题?二、简答题进程互斥遵循的四个原则:空闲让进、忙则等待、有限等待、让权等待重点习题四一、选择??二、综合题死锁产生的 4 个必要条件是: &#…

WCF trace、log

1. 打开wcf配置: 2. enable trace , log 可以改变log路径: 3. 用 SvcTraceViewer.exe (直接在c盘下搜索) 查看 4. 如果想自定义trace: catch(Exception ex) { Trace.Writ…

字典使用与内部实现原理

字典类型 (Hash) 又被成为散列类型或者是哈希表类型,它是将一个键值 (key) 和一个特殊的“哈希表”关联起来,这个“哈希表”表包含两列数据:字段和值。例如我们使用字典类型来存储一篇文章的详情信息,存储结构如下图所示: 同理我们也可以使用字典类型来存储用户信息,并且…

游标复习笔记

--while循环访问游标declarecursor cur_dept isselect * from dept;v_dept cur_dept%rowtype;beginopen cur_dept;fetch cur_dept into v_dept;while cur_dept%found loopdbms_output.put_line(v_dept.dname);fetch cur_dept into v_dept;end loop;close cur_dept;end;--retur…

操作系统中同步_操作系统中的经典同步问题

操作系统中同步经典同步问题 (Classical synchronization problem) In this section, we present a number of different philosopher synchronization problems that are important mainly because they are examples for a large class of concurrency- control problems. Th…

算法设计与分析复习第一二章(时间复杂度和蛮力法)

算法复习一二章第一章时间复杂度第二章蛮力法(1)查找问题顺序查找(2)排序问题选择排序起泡排序(3)组合问题0-1bag问题概述(略)(4)图问题哈密顿回路TSP问题&am…

有序集合使用与内部实现原理

有序集合类型 (Sorted Set) 相比于集合类型多了一个排序属性 score(分值),对于有序集合 ZSet 来说,每个存储元素相当于有两个值组成的,一个是有序结合的元素值,一个是排序值。有序集合的存储元素值也是不能重复的,但分值是可以重复的。 当我们把学生的成绩存储在有序集…

Ubuntu12环境下Thin+rails(4)+ruby(2)+nginx+mysql 配置

Ubuntu12环境下Thinrails(4)ruby(2)nginxmysql配置1. 前提条件:已经正确安装了ubuntu12并且更行了源。2. 安装过程:2.1 安装ruby前的准备:1.1修改 /etc/apt/sources.list文件改为mirrors.163.com保存退出…

Oracle 游标的练习

--1、什么是游标?使用游标的基本步骤是什么? /*挡在PL/SQL块中执行查询语句(SELECT)和数据操纵语句(DML)时,Oracle会在内存中分配一个缓冲区,缓冲区中包含了处理过程的必需信息&…

集合使用与内部实现原理

集合类型 (Set) 是一个无序并唯一的键值集合。 之所以说集合类型是一个无序集合,是因为它的存储顺序不会按照插入的先后顺序进行存储,如下代码所示: 127.0.0.1:6379> sadd myset v2 v1 v3 #插入数据 v2、v1、v3 (integer) 3 127.0.0.1:6379> smembers myset #查询数…

parse 日期_日期parse()方法以及JavaScript中的示例

parse 日期JavaScript Date parse()方法 (JavaScript Date parse() method) parse() method is a Date class method, it is used to parse a given date string and returns the total number of milliseconds since 01st January 1970 (midnight) to given date string. pars…

ORA-01002 提取违反顺序

ORA-01002 提取违反顺序 ORA-01002 ORA-01002: fetch out of sequence Cause: This error means that a fetch has been attempted from a cursor which is no longer valid. Note that a PL/SQL cursor loop implicitly does fetches, and thus may also cause this error. Th…

Android 友盟SDK 终极解决报错:SocialSDK_QQZone_2.jar contains native libraries that

转自:http://bbs.umeng.com/thread-6552-1-2.html 报错信息:The library SocialSDK_QQZone_2.jar contains native libraries that will not run on the device.解决方案:此问题和Eclipse环境有关,按照如下步骤操作即可Eclipse-&g…

Redis 持久化——AOF

使用 RDB 持久化有一个风险,它可能会造成最新数据丢失的风险。因为 RDB 的持久化有一定的时间间隔,在这个时间段内如果 Redis 服务意外终止的话,就会造成最新的数据全部丢失。 可能会操作 Redis 服务意外终止的条件: 安装 Redis 的机器停止运行,蓝屏或者系统崩溃;安装 R…

数组的fill方法_数组fill()方法以及JavaScript中的示例

数组的fill方法JavaScript fill()方法 (JavaScript fill() method) fill() method is used fill the array with a given value. fill()方法用于使用给定值填充数组。 Syntax: 句法: array.fill(value, [start_index], [end_index]);Parameters: 参数&#xff1a…

第四章文件管理

第四章文件管理4.1_2初识文件4.1_2文件的逻辑结构无结构文件有结构文件(1)顺序文件(2)索引文件索引顺序文件多级索引顺序文件4.1_3文件目录文件控制块FCB(2)单级目录(3)两级目录结构…

current of 使用

--Where Current Of语句允许你更新或者是删除最后由cursor取的记录declarecursor c_emp is select * from emp2 for update;beginfor v_emp in c_emp loopif substr(v_emp.ename,1,1)S thenupdate emp2 set comm nvl(comm,0)1000 where current of c_emp;end if;end loop;comm…

免费的管理页面模板

2019独角兽企业重金招聘Python工程师标准>>> Free Bootstrap Admin Templates for Designers 1. Admin Lite AdminLTE - 是一个完全响应式管理模板。基于Bootstrap3的框架。高度可定制的,易于使用。支持很多的屏幕分辨率适合从小型移动设备到大型台式机。…

Redis 持久化——RDB

Redis 的读写都是在内存中,所以它的性能较高,但在内存中的数据会随着服务器的重启而丢失,为了保证数据不丢失,我们需要将内存中的数据存储到磁盘,以便 Redis 重启时能够从磁盘中恢复原有的数据,而整个过程就叫做 Redis 持久化。 Redis 持久化也是 Redis 和 Memcached 的主…

c# 命名空间命名规范_C#命名空间能力问题和解答 套装2

c# 命名空间命名规范1) Can we create a nested namespace in C#.NET? YesNo Answer & Explanation Correct answer: 1Yes Yes, we can create a nested namespace in C#.NET. 1)我们可以在C#.NET中创建嵌套的名称空间吗? 是 没有 答案与解释 正确…