plsql习题
更新时间:2024-01-07 19:58:01 阅读量: 教育文库 文档下载
使用pl/sql块编程实现,注意必要的异常处理。
1.输入一个员工号,输出该员工的姓名、薪金和工作时间(按年月日显示)。
Set serveroutput on Declare
V_ename scott.emp.ename%type; V_sal scott.emp.sal%type;
V_hiredate scott.emp. hiredate %type; Begin
Select ename, sal, hiredate into v_ename, v_sal, v_hiredate from scott.emp where empno=&empno;
Dbms_output.put_line('姓名:'|| v_ename||' 工资:'|| v_sal||' 工资日期:'||to_char(v_hiredate,'yyyy-mm-dd')); EXCEPTION
When no_data_found then
Dbms_output.put_line('输入编号有误!'); End; /
2.接收一个员工号,输出该员工所在部门的名称。
Set serveroutput on Declare
V_dname scott.dept.dname%type; Begin
select dname into v_dname from scott.dept a,scott.emp b where a.deptno=b.deptno and
1
b.empno=&empno;
Dbms_output.put_line('部门名称:'|| v_dname); EXCEPTION
When no_data_found then
Dbms_output.put_line('输入编号有误!'); End; /
3.接收一个部门号,如果该部门中员工职位是MANAGER,并且在DALLAS工作,那么就给他薪金加15%;如果该部门员工职位是CLERK,并且在NEW YORK工作,那么就给他薪金扣除5%;其他情况不作处理。
2
declare
v_deptno scott.emp.deptno%type:=&deptno; cursor emp_cursor is
select job,loc,sal from scott.emp,scott.dept where scott.emp.deptno in
(select scott.emp.deptno from scott.dept,scott.emp where scott.emp.deptno=scott.dept.deptno and scott.dept.deptno=v_deptno)for update of scott.emp.sal; begin
for emp_record in emp_cursor loop
if emp_record.job='CLERK' and emp_record.loc='NEW YORK'then
update scott.emp set sal=emp_record.sal*0.95 where current of emp_cursor;end if; if emp_record.job='MANAGER' and emp_record.loc='DALLAS'then
update scott.emp set sal=emp_record.sal*1.15 where current of emp_cursor; exit when emp_cursor%NOTFOUND; end if; end loop; end; /
4.接收一个员工号,输出这个员工所在部门的平均工资。
Set serveroutput on
3
Declare
V_deptno scott.dept.deptno%type; V_avg_salar scott.emp.sal%type; Begin
Dbms_output.put_line('请输入员工号:');
select scott.emp.deptno into v_deptno from scott.emp where scott.emp.empno = &empno; select avg(scott.emp.sal) into V_avg_salar from scott.emp where scott.emp.deptno = v_deptno;
Dbms_output.put_line('该员工所在的部门编号为:'|| V_deptno);
Dbms_output.put_line('该员工所在部门的平均工资为:'|| V_avg_salar); EXCEPTION
When no_data_found then
Dbms_output.put_line('输入编号有误!'); End; /
5.以交互的方式给部门表插入一条记录,如果出现主键冲突的异常,请显示“部门号已被占用”的字样。
select scott.dept.deptno ,scott.dept.dname, scott.dept.loc from scott.dept;
4
Set serveroutput on Begin
insert into scott.dept(scott.dept.deptno,scott.dept.dname,scott.dept.loc) values(&deptno,&dname,&loc); EXCEPTION
When DUP_VAL_ON_INDEX then
Dbms_output.put_line('部门号已被占用!'); End; /
5
建立存储过程
6.建立一个存储过程用来接收一个员工号,返回他的工资和他所在部门的平均工资并作为传出参数传出。
create or replace procedure getsalar (empno_in in number,his_salar out number,avg_salary out number) as
v_deptno number; begin
select scott.emp.deptno into v_deptno from scott.emp where scott.emp.empno = empno_in;
select scott.emp.sal into his_salar from scott.emp where scott.emp.empno = empno_in;
select avg(scott.emp.sal) into avg_salary from scott.emp where scott.emp.deptno = v_deptno; end getsalar ; /
6
7.建立一个存储过程用来接收一个部门号,找出其中两位最老的员工
Set serveroutput on
create or replace procedure getEmpno (v_empno number) as
v_name1 varchar2(20); v_name2 varchar2(20);
cursor v_e is select scott.emp.ename from scott.emp where
scott.emp.deptno in (select scott.emp.deptno from scott.emp where scott.emp.empno = v_empno ) order by scott.emp.hiredate ; begin
open v_e ;
fetch v_e into v_name1;
Dbms_output.put_line(v_name1);
fetch v_e into v_name2;
Dbms_output.put_line(v_name2); close v_e; end getEmpno; /
7
begin
getEmpno(7788); end;
8
正在阅读:
plsql习题01-07
机床主轴设计最低转速80,公比1.41,级数8-3kw05-09
某时代广场智能化项目深化设计 - 图文05-13
浅谈移动流媒体技术08-17
液相色谱仪检测器最小检测浓度测量结果不确定度的评定03-02
申诉书格式02-18
单位接收证明格式4篇02-08
防句练习105-10
计算激光光束M_2因子的两种新方法_贺平08-13
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 习题
- plsql
- 博文中学2014年中考物理第三次模拟试卷
- 创建学习型党支部工作成果展(海报版)
- 通信原理 复习题
- 2011—2012学年度下学期高一日语学科教学计划
- 2010云南省公务员考试复习资料试题及答案
- 探究利格列汀对二甲双胍联合吡格列酮控制不佳的2型糖尿病治疗效果
- 上天的蚂蚁教案
- 投资学基础复习资料
- 刮板运输机断链处理安全措施
- 商场机电系统设备维护保养的重点分析
- 倒数的认识评课稿
- 冠梁施工方案
- 新版PEP小学英语三年级下册第五单元测试题Unit5(含听力材料)(2)
- 仓库5S管理实施方案
- 浙江省台州市2015届高三3月调研考试文综试题 - 图文
- 药用安瓿质量标准(上传)
- 推动智能网联汽车产业创新发展
- CAD学习技巧总结
- 2019中考化学试题汇编考点3空气含解析3
- 2018安全培训教案 - 图文