实验3PLSQL编程.docx

  1. 1、本文档共16页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验三 PL/SQL编程1.PL/SQL块处理定义一个包含声明、执行和异常处理的块查询EMP表中职工号7788的工资,输出工资的值并且如果工资小于3000那么把工资更改为3000,异常部分对NO_DATA_FOUND异常进行处理,输出没有该员工。如果想运行缓冲区的内容,那么可以用RUN命令或者/命令;serveroutput需要设置为on2.记录类型的使用创建一个记录类型v_record,类型包含name,salary,job,deptno等分量,要求记录类型的分量的数据类型和emp表中列的数据类型一致(%type实现)。创建一个变量,变量类型为v_record,读取EMP表中职工号为7788的ename,sal,job,deptno为该变量赋值,输出变量的分量。3.条件语句的使用分别用IF语句和CASE语句实现以下要求:输入一个员工号,修改该员工的工资,如果该员工职位是CLERK,工资增加100;若为SALESMAN,工资增加160;若为ANALYST,工资增加200;否则增加300。4. 循环和显示游标的使用分别用简单循环、WHILE循环、FOR循环以及显示游标统计并输出各个部门的人数以及平均工资5.用隐式游标实现以下要求:修改部门号为50的部门地址为‘BEIJING’。如果该部门不存在,则向dept表中插入一个部门号为50,地址为‘BEIJING’的记录。6.创建一个显示雇员总人数的存储过程emp_count,并执行该存储过程7. 编写显示雇员信息的存储过程EMP_LIST,并引用EMP_COUNT存储过程8. 创建函数,实现功能为:在scott.emp表和scott.dept表中查询出任意给定职工号的职工姓名及职工所在部门的名称。9. 创建触发器,实现更新dept表中的deptno值,级联更新emp表中相应值。10. 对存储过程、函数及触发器实现查看、修改、删除等基本操作。主要算法和程序清单:1.DECLAREv_empno emp.empno%TYPE:=7788;v_sal emp.sal%TYPE;v_add emp.sal%TYPE;BEGINSELECT sal INTO v_sal FROM emp WHERE empno=v_empno;IF v_sal3000THEN v_add:=3000;ELSEdbms_output.put_line(sal3000);END IF;UPDATE emp SET sal=v_add WHERE empno=v_empno;END;/2.declaretype v_record is record (name emp.ename%type,salary emp.sal%type,job emp.job%type,deptno emp.deptno%type);empinfo v_record;--定义变量beginselect ename,sal,job,deptnointo empinfofrom empwhere empno = 7788;dbms_output.put_line(雇员||||的职务是:||empinfo.job||工资是:||empinfo.salary||部门号是:||empinfo.deptno);end;/3.declare cursor c_emp is select * from scott.emp for update; v_increment number;begin for v_emp in c_emp loop case v_emp.deptno when 10 then v_increment:=100; when 20 then v_increment:=160; when 30 then v_increment:=200; else v_increment:=300; end case; update scott.emp set sal = sal+v_increment where current of c_emp; end loop;end;4.5.begin update scott.dept set loc = BEIJING where deptno=50; if sql%notfound then insert into scott.dept(deptno,loc) values(50,BEIJING); dbms_output.put_line(插入成功!); ELSE dbms_output.put_line(更新成共); end

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档