1、编写存储过程,显示各个职位(job),工资在2000元分以上人数和1000元以下人数。
2、编写一个存储过程
将各个职位前3位的职员的姓名,职位,工资,名次按工资排序存到一个数据表GOOD中
解答:
1、
create or replace procedure test_cursor
is
cursor c_tmp1 is select '>=2000' as salway,job,sum(case when sal>=2000 then 1 else 0 end) as countnum from emp group by job ;
cursor c_tmp2 is select '<=1000' as salway,job,sum(case when sal<=1000 then 1 else 0 end) as countnum from emp group by job ;
begin
for r_tmp1 in c_tmp1
loop
dbms_output.put_line('职位'||r_tmp1.job||'大于2000元的人数为'||r_tmp1.countnum);
end loop;
dbms_output.put_line(chr(13)); -- 打印回车
for r_tmp2 in c_tmp2
loop
dbms_output.put_line('职位'||r_tmp2.job||'小于1000元的人数为'||r_tmp2.countnum);
end loop;
end test_cursor;
2、
建表:
drop table good;
create table good(
gid number(5) primary key,
gename varchar2(20) not null,
gejob varchar2(20) not null,
gesal number not null,
grank integer not null
) ;
-- 建序列
create sequence s_good
minvalue 1
maxvalue 99999999999999999999999999
start with 1
increment by 1
cache 20;
-- 建触发器
create trigger t_good before insert on good for each row
begin
select s_good.nextval into :new.gid from dual;
end;
--建过程
create or replace procedure test_cursor2
is
cursor c_tmp is select * from good;
begin
insert into good(gename,gejob,gesal,grank) select * from (select ename gename,job gejob,sal gesal,row_number() over(partition by job order by sal) grank from emp) where grank<4;
commit;
for r_tmp in c_tmp
loop
dbms_output.put_line('姓名:'||r_tmp.gename||',职位:'||r_tmp.gejob||',薪水:'||r_tmp.gesal||',职位排名:'||r_tmp.grank);
end loop;
end test_cursor2;
测试:
begin
--test_cursor;
test_cursor2;
end;
分享到:
相关推荐
### Oracle PL/SQL 存储过程之游标实践详解 #### 一、引言 在Oracle数据库中,PL/SQL(Procedural Language for SQL)是一种强大的编程语言,它允许开发者编写复杂的数据库逻辑。其中,**游标**是PL/SQL中处理查询...
Oracle PLSQL,全称为“Procedural Language/Structured Query Language”,是Oracle数据库系统中的一个强大编程语言,它结合了SQL的查询能力与过程性编程语言的功能。本资料《Oracle PLSQL 从入门到精通》旨在帮助...
Oracle PL/SQL 游标的学习 本资源主要讲解了 Oracle PL/SQL 游标的概念、分类、属性和使用方法,为读者提供了详细的学习资料。 一、游标的概念 游标是映射在结果集中一行数据上的位置实体,有了游标,用户就可以...
本教程主要关注Oracle PL/SQL中的游标及其在数据库访问中的应用。 首先,SQL是用于与Oracle数据库交互的基础语言,而PL/SQL则提供了更多的控制结构和程序化功能。尽管PL/SQL不支持直接的DDL(Data Definition ...
游标提供了一种对从表中检索出的数据进行操作的灵活手段,就本质而言,游标实际上是一种能从包括多条数据记录的结果集中每次提取一条记录的机制。
`column_list`是要选择的列;`table_name`是数据表的名称;`condition`是WHERE子句中的筛选条件。 ##### 3.2 打开游标 在使用游标之前,需要先打开它: ```plsql OPEN c_name; ``` ##### 3.3 读取游标 通过`...
根据提供的文件信息,我们可以归纳出以下Oracle游标的使用方法及相关知识点: ### 一、游标的基本概念 在Oracle数据库中,游标是一种重要的机制,它允许用户从查询结果集中逐行检索数据。游标可以分为两种类型:**...
PLSql 很好的一个控制数据库工具(ORACLE)
《Oracle PLSQL详解 宝典》是一本专为IT专业人士准备的深度学习Oracle数据库中的PL/SQL编程语言的指南。本书旨在帮助读者深入理解PL/SQL的各个方面,从而能够熟练地利用这一强大的工具来解决实际工作中遇到的问题。...
Oracle PL/SQL是一种在Oracle数据库环境中进行数据库编程的语言,它结合了SQL的查询能力与过程化编程语言的特点,使得开发者可以编写复杂的业务逻辑和数据库操作。在这个“Oracle PL/SQL”主题中,我们将深入探讨这...
PLSQL 存储过程 语法
Oracle PLSQL,全称为Oracle Procedural Language/Structured Query Language,是Oracle数据库系统中的一个编程组件,用于扩展SQL的功能,实现更复杂的业务逻辑。它结合了SQL的查询能力与过程式编程语言的特点,使得...
Oracle PLSQL编程是数据库开发领域中的重要组成部分,尤其在企业级应用系统中广泛使用。第四版的《Oracle PLSQL编程》旨在深入解析Oracle数据库的PL/SQL编程语言,帮助开发者提升技能,掌握高效、稳定和安全的数据库...
Oracle PL/SQL 游标的学习 游标是 Oracle PL/SQL 中的一个重要概念,它允许用户访问和操作结果集中的数据。游标可以理解为是一个映射在结果集中的一行数据上的位置实体,有了游标,用户就可以访问结果集中的任意一...
这篇“Oracle PL/SQL常见操作练习”旨在帮助初学者和有经验的开发人员更好地理解和掌握在Oracle环境中使用PL/SQL进行数据库操作的各种技巧。 在PL/SQL中,我们首先会接触到基本的语法结构,如声明变量、游标、条件...
读者循序渐进地学习每个关键任务,自己就能掌握当今最有价值的Oracle12c的PL/SQL编程技术。本书的方法完全反映了作者在哥伦比亚大学给专业人员讲授PL/SQL的广受好评的经验。数据库开发的新手和DBA可以通过学习本书...
oracle plsql 代码入门到精通实例演示讲解,plsql编程入门教程
ORACLE PLSQL实例精解(第4版).part2
### Oracle内部培训资料——游标知识点详解 #### 一、游标概述 游标是Oracle数据库中用于处理SQL查询返回的多行记录的一种机制。它允许用户逐行地访问查询结果,这对于处理不确定数量的数据非常有用。游标分为两种...