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;
2013-11-11 Oracle 课堂测试 练习题 例:BULK COLLECT及return table相关推荐
- 非静压模型NHWAVE学习(11)——孤立波爬坡测试算例(Solitary Wave on a Simple Beach)
NHWAVE孤立波爬坡测试算例(Solitary Wave on a Simple Beach) 测试算例简介 实验设置 与解析解对比的模拟(Analytical Solution) 最大爬升高度的模 ...
- oracle中bulk,Oracle数据库之FORALL与BULK COLLECT语句
1 PL/SQL块的执行过程 当PL/SQL运行时引擎处理一块代码时,它使用PL/SQL引擎来执行过程化的代码,而将SQL语句发送给SQL引擎来执行: SQL引擎执行完毕后,将结果再返回给PL/SQL ...
- oracle学习总结三(bulk collect用法)
通过bulk collect减少loop处理的开销 发表人:logzgh | 发表时间: 2006年五月19日, 10:56 采用bulk collect可以将查询结果一次性地加载到collectio ...
- bulk怎么使用oracle,oracle学习之bulk collect用法
通过bulk collect减少loop处理的开销,使用Bulk Collect提高Oracle查询效率 Oracle8i中首次引入了Bulk Collect特性,该特性可以让我们在PL/SQL中能使 ...
- 《Oracle数据库管理与维护实战》——2.11 Oracle数据字典
本节书摘来自异步社区出版社<Oracle数据库管理与维护实战>一书中的第2章,第2.11节,作者: 何伟娜 , 常建功,更多章节内容可以访问云栖社区"异步社区"公众号查 ...
- oracle 11g dul,【学习笔记】Oracle DUL 11 兼容Oracle 12C数据库的DUL工具最新版本
天萃荷净 oracle dul 11 正式发布,迫不及待的下载来测试,现在版本号为dul 11.2.0.0.1,目前只发布了for linux,其他版本估计要等等.期待该版本有引进新功能 1.orac ...
- 2013年11月26日 20:26:36 做某香米过程中问题总汇
个人工作: A.图片编辑界面: ①图片旋转 ②滤镜效果[*] 使用GPU Image开源库,120种滤镜效果,3-4天之内 ③缩放 ④亮度[*] ⑤文字编辑 B.代码方面: ①代码合并 细节点比如一天 ...
- OCA读书笔记(11) - 实现Oracle数据库审计
11 Implementing Oracle Database Auditing 描述DBA对于安全和审计的职责 使能标准的数据库审计 安全审计选项 查看审计信息 维护审计路径 最小权限原则 只在计算 ...
- 2013年最后2个月的学习目标(成果)(上次更新2013年11月18日)
1.2013年11月7日. a.新人毕业-老人跳槽 专栏. 简化标题,调整字体,增加和修改"相关阅读". 增加和修改Tag. b.新人毕业-老人跳槽 专栏. 删除3篇非原创文章. ...
最新文章
- 大型电商网站详情页是如何支撑亿级流量访问的?
- R语言时间序列(time series)分析实战:霍尔特指数Holt‘s平滑法预测
- php文件包含漏洞(input与filter)
- 返回对象1(未调用拷贝构造函数)
- 微信官方数据披露:哪些文章更受朋友圈欢迎
- 深入分析 Javascript 单线程
- git配置global信息
- 橱柜高度与身高对照表_下一套房子装修,橱柜就照这样打,布局尺寸这么详细,不信不好用...
- 简述select语句的完整语法_SQL里的各种语句的完整语法
- php中文件读写总结,PHP中文件读写操作
- php myflow,WordPress安装使用Flowplayer简易指南
- linux重启切换内核,centos7切换启动内核与切换启动模式的讲解
- 周志华:AAAI 2019论文提交创纪录,达到7745篇
- doc 命令查看帮助
- 问题二十五:为什么有时候XnView无法显示PPM图片?
- tensorflow Image 解码函数
- 一次TypeScript, React, Node, MongoDB的模板式前后端分离开发实践
- matlab列主元消去法求逆矩阵,Gauss-Jordan列主元消元法求逆矩阵
- PostgreSQL的json和jsonb比较
- macbook键盘背光打不开怎么办?如何解决苹果笔记本键盘背光不亮的问题?