oracle的一些习题

上传人:慢*** 文档编号:233075207 上传时间:2022-01-01 格式:DOC 页数:19 大小:103.50KB
返回 下载 相关 举报
oracle的一些习题_第1页
第1页 / 共19页
oracle的一些习题_第2页
第2页 / 共19页
oracle的一些习题_第3页
第3页 / 共19页
oracle的一些习题_第4页
第4页 / 共19页
oracle的一些习题_第5页
第5页 / 共19页
点击查看更多>>
资源描述

《oracle的一些习题》由会员分享,可在线阅读,更多相关《oracle的一些习题(19页珍藏版)》请在金锄头文库上搜索。

1、求雇员的平均薪水,当薪水小于1000时,提示“薪水太低”,当薪水大于等于1000小于2000时,提示起步的薪水,当薪水大于等于2000时,提示已经步入软件行业中,使用CASE表达式来实现。set serveroutput ondeclare v_sal emp.sal%type; v_var varchar2(20);begin select avg(sal) into v_sal from emp; v_var := case when v_sal=1000 and v_sal3; end loop;end;for v_count in 1.3 loop insert into test(e

2、mpno,ename,job) values(v_empno+v_count),v_ename,v_job)创建表message,结构如下: results varchar2(10)使用for循环插入1到10(除了6和8)的数据到表中,在结束之前提交数据。create table message(results varchar2(10); begin for i in 1.10 loop if i=6 or i=8 then null; else insert into message values(i); end if; end loop; commit; end; select * fro

3、m message; begin for i in 1.10 loop; if i6 and i8 then insert into message values(i); end if; end loop; commit; end; 尽量不用goto语句;begin dbms_output.put_line(1); goto l_last_line; dbms_output.put_line(2); return; dbms_output.put_line(3);end; 第三章创建一个记录类型emp_record_type,它包含雇员的名字、薪水、工作岗位,声明一个该类型的变量emp_rec

4、ord,查询雇员编号是7788雇员的上述信息,并显示。declare type emp_record_type is recode (ename emp.ename%type, sal emp.sal%type, job varchar2(20); emp_record emp_record_type;begin select ename,job,sal into emp_record from emp where empno=7788; dbms_output.put_line(雇员名:=emp_record.ename;薪水:=sal);end; 第四章创建一个游标,查询雇员的名字和薪水,

5、当查询到某雇员的薪水大于3000元时,退出循环,并显示其对应的名字和薪水。set serveroutput ondeclare ename emp.ename%type; sal emp.sal%type; cursor emp_cursor is select ename,sal from emp;begin open emp_cursor; loop fetch emp_cursor into ename,sal; if(sal3000)then dbms_output.put_line(ename|sal); exit; end if; end loop; close emp_curso

6、r;end; 创建一个游标,查询薪水大于3000元的雇员名字和对应薪水,并显示其对应的 名字和薪水。set serveroutput ondeclare ename emp.ename%type; sal emp.sal%type; cursor emp_cursor is select ename,sal from emp where sal2000;begin if not emp_cursor%isopen then open emp_cursor; end if; loop fetch emp_cursor into ename,sal; exit when emp_cursor%no

7、tfound; dbms_output.put_line(ename|的薪水为|sal);end loop; close emp_cursor;end; 创建一个游标,查询雇员名字和对应薪水,当遇到雇员名是SCOTT的雇员时,退出游标的FOR循环,显示其对应的薪水,并显示其在游标中的位置。 declare cursor emp_cursor is select ename,sal from emp;begin for emp_record in emp_cursor loop if emp_record.ename=SCOTT then dbms_output.put_line(emp_rec

8、ord.ename|的薪水为|emp_record.sal); dbms_output.put_line(emp_cursor%rowcount); exit; end if; end loop;end; 不需声明的游标begin for emp_record in (select empno,ename from emp) loop if emp_record.ename=SCOTT then dbms_output.put_line(emp_record.empno); end if; end loop; end;带参数的游标declare cursor emp_cursor (p_dep

9、tno number,p_sal number) is select ename from emp where deptno=p_deptno and salp_sal;begin open emp_cursor(10,2000); close emp_cursor; open emp_cursor(20,4000);end; 在一个快中分别 显示薪水低于2000,在2000与4000之间,以及大于4000的雇员名。declare cursor emp_cursor (p_sal1 number,p_sal2 number) is select ename from emp where sal

10、p_sal1 and salp_sal2;begin for emp_record in emp_cursor(0,2000)loop dbms_output.put_line(薪水低于2000的用户是 :|emp_record.ename); end loop; dbms_output.put_line(=) ; for emp_record in emp_cursor(2000,4000)loop dbms_output.put_line(薪水大于2000低于4000的用户是:|emp_record.ename); end loop; dbms_output.put_line(=) ; f

11、or emp_record in emp_cursor(4000,100000)loop dbms_output.put_line(薪水大于4000的用户是 :|emp_record.ename); end loop;end;for update 子句declare cursor emp_cursor is select ename,sal from emp for update nowait;begin for emp_record in emp_cursor loop if(emp_record.ename=SCOTT)then update emp set sal=emp_record.sal+300 where ename=SCOTT; exit; end if; end loop;end;where current of子句declare cursor sal_cursor is select sal from emp where deptno=30 for update nowait;begin for emp_record in sal_cursor loop update emp set sal=emp_record.sal*1.10 where

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 中学教育 > 其它中学文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号