第二次Oracle题目
1、 Oracle分析函数有那些?主要有什么区别?
2、 请列举Oracle中常见的几种异常,分别是在什么情况下会触发。如何引发一个应用级别的异常
3、 请用过程实现Oracle数据的分页
4、 简述Oracle数据库体系结构中的物理组件和逻辑组件。
5、 编写一个程序,删除student表中的重复记录(8分)Name         Type            Nullable Default Comments 
-------- ------------ -------- ------- -------- 
STU_NO      NUMBER                                 
STU_NAME   VARCHAR2(10)    Y                         
STU_AGE     NUMBER         Y  6、 在Oracle中写一个包,包中定义一个过程实现根据表中配置的查询语句,取出sql语句并动态的执行后返回这个查询语句并动态的显示在前台的table中。7、 如何实现行列转换
create table course
(
student_name  varchar2(10),
subject       varchar2(10),
grade         number
);
insert into course values('张三','语文',80);
insert into course values('张三','数学',70);
insert into course values('张三','英语',56);
insert into course values('张三','英语',68);
insert into course values('李四','语文',90);
insert into course values('李四','数学',80);
insert into course values('李四','英语',100);
--转换为 
姓名             语文       数学       英语
---------- ---------- ---------- ----------
李四               90         80        100
张三               80         70         62
请写出转换语句(5分)

解决方案 »

  1.   

    用Oracle的建议转到相应版块提问.
      

  2.   

    你是想要用mssql的方法做Oracle题目吗?
      

  3.   

    1、 Oracle分析函数有那些?主要有什么区别? 
    总共有26个分析函数 ,结构 函数名字(1到3个参数)over (分组语句 排序 窗口子句)
    例如
     select sum(aa)over(partition by 列名/*表示安什么分组*/ order by 列名/*按照什么排序*/
      precoding row 3  /*窗口子句有2种 : 一 rows 固定窗口 二 range 仅对数字日期有效 */
    ) from bb
    2、 请列举Oracle中常见的几种异常,分别是在什么情况下会触发。如何引发一个应用级别的异常
     oracle 异常有 三种 1:oracle系统异常 大概20多个 2 自定义异常 异常号 是从-2000到-2999 吧具体记不住了你查一下! 3 非自定义异常 这是oracle提供 看oracle文档有对应异常号码! 使用的时候必须先绑定 才能捕获 自定义异常使用的时候必须显示抛出 自定义异常跟oracle无关  
    3、 请用过程实现Oracle数据的分页 
     表a  列 b ,c 按照c排序select * from 
     (select t.*,rownum r from  (select * from a order by c) t
    where rownum < 10)
    where r>4
      

  4.   

    行转列,为什么有
    insert into course values('张三','英语',56); 
    insert into course values('张三','英语',68); 
      

  5.   

    student_name  varchar2(10), 
    subject      varchar2(10), 
    grade        number select student_name,
           max(case subject when '语文' then isnull(grade,'') end) as '语文',
           max(case subject when '数学' then isnull(grade,'') end) as '数学',
           max(case subject when '英语' then isnull(grade,'') end) as '英语'from course
    group by student_name
      

  6.   

    --删除重复记录
    delete from student a
    where exists(select 1 from student b where stu_no=b.stu_no
    and a.rowid<b.rowid);
      

  7.   

    5、查数据:    
      select count(STU_NO), max(STU_NAME) from student --列出重复的记录数,并列出他的name属性    
      group by STU_NO    
      having count(STU_NO) >1 --按num分组后找出表中num列重复,即出现次数大于一次    
    删数据:    
      delete from student    
      group by STU_NO    
      having count(STU_NO) >1    
      这样的话就把所有重复的都删除了。