【第21期】观点:人工智能到底用 GPU?还是用 FPGA?

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

原创 2013年12月05日 17:07:03
--1)  查询“计算机”专业学生在“2007-12-15”至“2008-1-8”时间段内借书的
--学生编号、学生名称、图书编号、图书名称、借出日期;
select s.stuid, s.stuname, b.bid, b.title, bo.t_time
  from borrow bo
  join student s on bo.stuid = s.stuid
  join book b on bo.bid = b.bid
 where bo.t_time between to_date('2007-12-15', 'yyyy-mm-dd') and
       to_date('2008-01-08', 'yyyy-mm-dd') and s.major = '计算机';

--2)  用pl/sql匿名块实现,查询所有借过图书的学生编号、学生名称、专业;(提示:用游标)
declare
  cursor c_student is
    select * from student;
  cursor c_borrow is
    select * from borrow;
begin
  dbms_output.put_line('学生编号  ' || '  学生姓名  ' || '  专业');
  for v_student in c_student loop
    for v_borrow in c_borrow loop
      if v_student.stuid = v_borrow.stuid then
        dbms_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_time
  from borrow bo
  join student s on bo.stuid = s.stuid
  join book b on bo.bid = b.bid
 where 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_borrowlist
  return t_borrowlist_table is v_rs t_borrowlist_table;
begin

  select t_borrowlist_object(s.stuname, count(*)) BULK COLLECT
    INTO v_rs
    from borrow bo
    join student s on bo.stuid = s.stuid
    join book b on bo.bid = b.bid
   where bo.b_time is null
   group 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 is
  PRAGMA AUTONOMOUS_TRANSACTION;
  v_flag     number;
  v_borrowid borrow.borrowid%type;
  v_rs       varchar2(200);
begin

  select count(*)
    INTO v_flag
    from borrow
   where b_time is null
     and stuid = v_stuid
     and bid = v_bid;

  if v_flag >= 1 then
    select borrowid
      INTO v_borrowid
      from borrow
     where b_time is null
       and stuid = v_stuid
       and bid = v_bid
       and rownum <= 1;
    v_rs := v_stuid || ' 号同学还 ' || v_bid || ' 图书 成功';
    update borrow set b_time = sysdate where borrowid = v_borrowid;
    commit;
  else
    v_rs := v_stuid || ' 号同学还 ' || v_bid || ' 图书 失败';
  end if;

  return v_rs;
end;

select * from borrow;

select f_rebook('1001', 'B001') from dual;


版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

oracle常用的复合数据类型 : BULK COLLECT(成批聚合类型)和数组集合type类型is table of 表%rowtype index by binary_integer

例1:批量 查询部门号为"10" 号的并把它们打印出来.DECLARE   TYPE emp_table_type IS TABLE OF my_emp%ROWTYPE INDEX BY BINARY...

[每日一题] 11gOCP 1z0-052 :2013-09-6 DBMS_STATS.SET_TABLE_PREFS()使用...............................A37

转载请注明出处:http://blog.csdn.net/guoyjoe/article/details/11358457 <img src="http://img.blog.csdn.net/20130910102938187?wa

oracle学习之bulk collect用法

通过bulk collect减少loop处理的开销,使用Bulk Collect提高Oracle查询效率 Oracle8i中首次引入了Bulk Collect特性,该特性可以让我们在PL/SQL中能使用

Dynamics CRM 2013 初体验(11):Async Message and Bulk Message Execution

今天我们来看看新系统中的消息吧,即为API。异步消息可以将作业转换为后台任务进行处理,处理机制和传统的工作流类似。这样我们就可以避免系统被长任务挂起,用户可以在这段时间内继续处理其他的事情。但可惜的是...

Oracle 游标处理II - 使用BULK COLLECT

以前写了一个Oracle 游标处理 <p style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-bottom: 0px; color:

实战BULK COLLECT(成批聚合类型)和数组集合type类型is table of 表%rowtype index by binary_integer .

转载 http://blog.csdn.net/zcywell/article/details/7258049 例1: 批量 查询部门号为 "10"  号的并把它们打印出来 . DECLARE ...

oracle 中 bulk collect into的用法【转】

通过bulk collect减少loop处理的开销 采用bulk collect可以将查询结果一次性地加载到collections中。 而不是通过cursor一条一条地处理。 可以在select into,fetch into,returning into语句使用bulk collect。 [b]注意在使用bulk collect时,所有的into变量都必须是collections.[/b] [code="java"] 举几个简单的例子: --在select into语句中使用bulk collect DECLARE TYPE SalList IS TABLE OF

Oracle 11g使用DML Error Logging来避免bulk insert故障

当使用带有子查询的insert语句来加载数据时如果出现错误.系统会终止该语句并回滚整个操作.这是非常消耗时间和资源的操作.如果insert这样的语句可以使用DML Error Logging功能来避免...

实战BULK COLLECT(成批聚合类型)和数组集合type类型is table of 表%rowtype index by binary_integer

例1: 批量查询部门号为 "10" 号的并把它们打印出来 . DECLARE TYPEemp_table_typeISTABLEOFmy_emp%ROWTYPEINDEXBYBINARY_INTEGER; v_emp_tableemp_table_type; BEGIN SELECT*BULKCOLLECTINTOv_emp_tableFROMmy_empWHEREdeptno=&amp;deptno; FORiIN1..v_emp_table.COUNTLOOP <p

实战BULK COLLECT(成批聚合类型)和数组集合type类型is table of 表%rowtype index by binary_integer

转自:http://space.itpub.net/24546326/viewspace-672576 例1: 批量 查询部门号为 "10"  号的并把它们打印出来 . DECLARE ...
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)