2013-11-11 Oracle 课堂测试 练习题 例:BULK COLLECT及return table

--1)  查询“计算机”专业学生在“2007-12-15”至“2008-1-8”时间段内借书的
--学生编号、学生名称、图书编号、图书名称、借出日期;
select s.stuid, s.stuname, b.bid, b.title, bo.t_timefrom borrow bojoin student s on bo.stuid = s.stuidjoin book b on bo.bid = b.bidwhere bo.t_time between to_date('2007-12-15', 'yyyy-mm-dd') andto_date('2008-01-08', 'yyyy-mm-dd') and s.major = '计算机';--2)  用pl/sql匿名块实现,查询所有借过图书的学生编号、学生名称、专业;(提示:用游标)
declarecursor c_student isselect * from student;cursor c_borrow isselect * from borrow;
begindbms_output.put_line('学生编号  ' || '  学生姓名  ' || '  专业');for v_student in c_student loopfor v_borrow in c_borrow loopif v_student.stuid = v_borrow.stuid thendbms_output.put_line(v_student.stuid || '        ' ||v_student.stuname || '        ' ||v_student.major);exit;end if;end loop;end loop;
end;--3)  查询借过作者为“安意如”的图书的学生姓名、图书名称、借出日期、归还日期;
select s.stuname, b.title, bo.t_time, bo.b_timefrom borrow bojoin student s on bo.stuid = s.stuidjoin book b on bo.bid = b.bidwhere b.author = '安意如';--4)   查询目前借书但未归还图书的学生名称及未还图书数量;
--(要求: 未还图书数,用函数实现,并在sql语句中调用)
create or replace type t_borrowlist_object as object(stuid varchar2(20),books number);
create or replace type t_borrowlist_table as table of t_borrowlist_object;create or replace function f_borrowlistreturn t_borrowlist_table is v_rs t_borrowlist_table;
beginselect t_borrowlist_object(s.stuname, count(*)) BULK COLLECTINTO v_rsfrom borrow bojoin student s on bo.stuid = s.stuidjoin book b on bo.bid = b.bidwhere bo.b_time is nullgroup by s.stuname;return v_rs;
end;select * from table(f_borrowlist());--5)用一个存储过程完成还书功能,输入参数为学号和书号,把当前日期作为还书日期。
create or replace function f_rebook(v_stuid student.stuid%type,v_bid   book.bid%type) return varchar2 isPRAGMA AUTONOMOUS_TRANSACTION;v_flag     number;v_borrowid borrow.borrowid%type;v_rs       varchar2(200);
beginselect count(*)INTO v_flagfrom borrowwhere b_time is nulland stuid = v_stuidand bid = v_bid;if v_flag >= 1 thenselect borrowidINTO v_borrowidfrom borrowwhere b_time is nulland stuid = v_stuidand bid = v_bidand rownum <= 1;v_rs := v_stuid || ' 号同学还 ' || v_bid || ' 图书 成功';update borrow set b_time = sysdate where borrowid = v_borrowid;commit;elsev_rs := v_stuid || ' 号同学还 ' || v_bid || ' 图书 失败';end if;return v_rs;
end;select * from borrow;select f_rebook('1001', 'B001') from dual;


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

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

相关文章

查询附近的人——GEO

受过高等教育的我们都知道,我们所处的任何位置都可以用经度和纬度来标识,经度的范围 -180 到 180,纬度的范围为 -90 到 90。纬度以赤道为界,赤道以南为负数,赤道以北为正数;经度以本初子午线(英国格林尼治天文台)为界,东边为正数,西边为负数。 Redis 在 3.2 版本中增…

种群竞争模型

种群竞争模型一、种群竞争模型二、分析&#xff08;1&#xff09;未改变初值&#xff08;2&#xff09;改变自然增长率r&#xff08;3&#xff09;改变该环境种群最大容量&#xff08;4&#xff09;改变两个种群初始数量&#xff08;5&#xff09;改变资源竞争力三、MATLAB执行…

为什么我要选择erlang+go进行server架构(2)

原创文章&#xff0c;转载请注明出处&#xff1a;server非业余研究http://blog.csdn.net/erlib 作者Sunface 为什么我要选择Erlang呢&#xff1f; 一、erlang特别适合中小团队创业&#xff1a; erlang有异常成熟、经过电信级别大规模验证的OTP应用库&#xff0c;仅仅须要非常ea…

Python | 计算给定数字的平方(3种不同方式)

Given a number, and we have to calculate its square in Python. 给定一个数字&#xff0c;我们必须在Python中计算其平方。 Example: 例&#xff1a; Input:Enter an integer numbers: 8Output:Square of 8 is 64Calculating square is a basic operation in mathematics;…

PFILE和SPFILE

PFILE和SPFILE介绍一、PFILEPfile&#xff08;Parameter File&#xff0c;参数文件&#xff09;是基于文本格式的参数文件&#xff0c;含有数据库的配置参数。1、PFILE - initSID.ora(默认PFILE名称),位置在$ORACLE_HOME/dbs目录下面。 这是一个文本文件&#xff0c;可以用任何…

内存淘汰机制与算法

在本文开始之前,我们先要明白:在 Redis 中,过期策略和内存淘汰策略两个完全不同的概念,但很多人会把两者搞混。 首先,Redis 过期策略指的是 Redis 使用那种策略,来删除已经过期的键值对;而 Redis 内存淘汰机制指的是,当 Redis 运行内存已经超过 Redis 设置的最大内存之…

Java基础结构语句和IDEA使用和数组

Java基础结构语句和IDEA和数组基本类型和引用类型static第一章&#xff1a;结构语句1.1.1三元运算符1.1.2switch语句1.1.3do-while循环第二章&#xff1a;IDEA2.1_IDEA的项目结构2.2_IDEA的使用&#xff08;代码及时自动保存&#xff09;&#xff08;1&#xff09;代码快捷方式…

java程序员个人能力介绍_Java操作员能力问题

java程序员个人能力介绍Java Operators Aptitude Questions and Answers: This section provides you Java Operators related Aptitude Questions and Answers with multiple choices. Here, You will get solution and explanation of each question. Java操作员能力倾向问题…

【新年巨献】计算机类国际英文EI(JA)期刊限量推荐

【2015年新年巨献】计算机、电子类国际英文EI&#xff08;JA&#xff09;期刊限量推荐EI源刊&#xff08;JA&#xff09; : 计算机、软件、网络、通信工程及电子工程等相关议题征稿与国际学术期刊社合作&#xff0c;特推出EI源刊正刊论文征稿&#xff0c;本次征稿期刊均为最新E…

拷贝数据库

通过IE使用ORACLE数据库&#xff1a;http://localhost:5560/isqlplus通过IE管理ORACLE数据库&#xff1a;http://localhost:1158/em查看oracle数据库的三类文件&#xff1a;数据文件&#xff0c;日志文件&#xff0c;控制文件用SYS登陆&#xff0c;角色给sysdba查看数据文件&am…

游标迭代器(过滤器)——Scan

一个问题引发的「血案」 曾经发生过这样一件事,我们的 Redis 服务器存储了海量的数据,其中登录用户信息是以 user_token_id 的形式存储的。运营人员想要当前所有的用户登录信息,然后悲剧就发生了:因为我们的工程师使用了 keys user_token_* 来查询对应的用户,结果导致 Re…

同时对view延时执行两个动画时候的现象

同时对view延时执行两个动画时候的现象 对于view延时执行了两个动画后&#xff0c;会将第一个动画效果终止了&#xff0c;直接在第一个动画的view的最后的状态上接执行后续的动画效果&#xff0c;也就是说&#xff0c;我们可以利用这个特性来写分段动画效果&#xff0c;比如&am…

子网掩码+ip地址_C ++程序使用位掩码查找唯一编号

子网掩码ip地址Problem statement: C Program to find unique number in an array of n numbers in which except one (unique number) rest all are present thrice. 问题陈述&#xff1a; C 程序在n个数字的数组中查找唯一数字&#xff0c;其中除一个(唯一数字)外其余所有其余…

消息队列的其他实现方式

在 Redis 5.0 之前消息队列的实现方式有很多种,比较常见的除了我们上文介绍的发布订阅模式,还有两种:List 和 ZSet 的实现方式。 List 和 ZSet 的方式解决了发布订阅模式不能持久化的问题,但这两种方式也有自己的缺点,接下来我们一起来了解一下,先从 List 实现消息队列的…

怎样使用orapwd新建口令文件

orapwd是oracle提供的创建口令文件的命令&#xff0c;如果口令文件不见了可以用这个命令重新创建。下面是orapwd命令的一些解释。D:\oracle\ora92\database>orapwdUsage: orapwd file<fname> password<password> entries<users>wherefile - name of passw…

死锁 预防死锁避免死锁_死锁和处理死锁的方法

死锁 预防死锁避免死锁僵局 (Deadlock) In the multiprogramming operating system, there are a number of processing which fights for a finite number of resources and sometimes waiting process never gets a chance to change its state because the resources for wh…

消息队列——发布订阅模式

在 Redis 中提供了专门的类型:Publisher(发布者)和 Subscriber(订阅者)来实现消息队列。 在文章开始之前,先来介绍消息队列中有几个基础概念,以便大家更好的理解本文的内容。 首先,发布消息的叫做发布方或发布者,也就是消息的生产者,而接收消息的叫做消息的订阅方或…

eclipse安装jetty插件

2019独角兽企业重金招聘Python工程师标准>>> 1 eclipse安装jetty插件 由于项目需要&#xff0c;eclipse需要安装jetty插件&#xff0c;从百度搜索的结果基本都是从http://run-jetty-run.googlecode.com/svn/trunk/updatesite获取jetty&#xff0c;国内的网络根本无法…

实战:分布式锁详解与代码

什么是锁? 锁是一种常用的并发控制机制,用于保证一项资源在任何时候只能被一个线程使用,如果其他线程也要使用同样的资源,必须排队等待上一个线程使用完。 锁的示意图,如下所示: 什么是分布式锁? 上面说的锁指的是程序级别的锁,例如 Java 语言中的 synchronized 和 …

编译原理第二章

编译原理第二章2.3_句型的分析&#xff08;1&#xff09;语法树和二义性&#xff08;2&#xff09;短语和句柄&#xff08;规约问题&#xff09;2.5_文法和语言的Chomsky分类&#xff08;1&#xff09;0型文法&#xff08;2&#xff09;1型文法&#xff08;3&#xff09;2型文法…