- 1、本文档共4页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验三 PL/SQL编程
一、实验目的及要求
(1) 掌握PL/SQL块结构、PL/SQL的基本语法、PL/SQL的控制结构。
(2) 掌握PL/SQL块中使用复合数据类型和游标的方法。
(3) 掌握PL/SQL异常处理技术。
二、实验主要内容
(1) 记录执行命令和操作过程中遇到的问题及解决方法,注意从原理上解释原因。
(2) 记录利用SQL*Plus或iSQL*Plus编写、执行PL/SQL程序的命令。
(3) 记录执行命令和操作过程中遇到的问题及解决方法,注意从原理上解释原因。
三、实验仪器设备
在局域网环境下,有一台服务器和若干台客户机。服务器成功安装Oracle 11g数据库服务器(企业版),客户机成功安装Oracle 11g客户端软件,网络服务配置正确,数据库和客户端正常工作。
四、实验步骤
在SQL*Plus中使用PL/SQL块处理EMP表中职工号7788的职工,如果工资小于3000那么把工资更改为3000:
declare
num_sal emp.sal%type;
begin
select sal into num_sal from emp where empno=7788; 查询EMP表中职工号7788的工资
if(num_sal3000) then 判断工资是否小于3000
update emp set sal=3000 where empno=7788; 把小于3000的工资改为3000
end if;
dbms_output.put_line(更新||sql%rowcount||条记录);
dbms_output.put_line(工资是:||num_sal);
end;
编写一个程序块,将emp表中前5人的名字显示出来。
declare 创建一个记录类型v_record,类型包含name,salary,job,deptno分量
type v_record is record(
name emp.ename%type,
salary emp.sal%type,
job emp.job%type,
deptno emp.deptno%type 记录类型的分量的数据类型和emp表中列的数据类型一致(%type实现)
);
t_record v_record;
begin
select emp.ename,emp.sal,emp.job,emp.deptno
into t_record from emp
where empno=7788; 读取EMP表中职工号为7788的ename,sal,job,deptno为该变量赋值,输出变量的分量
dbms_output.put_line(t_record.name|| ||t_record.salary|| ||t_record.job|| ||t_record.deptno);
end;
3.某公司要根据雇员的职位来加薪,公司决定按下列加薪结构处理:
JOB Raise
-----------------------
Clerk 500
Salesman 1000
Analyst 1500
Otherwise 2000
编写一个程序块,接受一个雇员名,从emp表中实现上述加薪处理。
(if)
DECLARE
v_job emp.job%type;
v_increment NUMBER(4);
v_empno emp.empno%type;
BEGIN
v_empno:=x;
SELECT job INTO v_job FROM emp
WHERE empno=v_empno;
IF v_job=CLERK THEN v_increment:=100;
ELSIF v_job=SALESMAN THEN v_increment:=160;
ELSIF v_job=ANALYST THEN v_increment:=200;
ELSE v_job:=300;
END IF;
UPDATE emp SET sal=sal+v_increment
WHERE empno=v_empno;
END;
(CASE)
DECLARE
v_job emp.job%type;
v_increment NUMBER(4);
v_empno emp.empno
您可能关注的文档
最近下载
- 人教新目标八年级下册英语全册教案(最全).doc
- 中国风能太阳能资源年景公报2014.pdf
- 2021年数学英才登高系列活动(CMTS)试题.pdf
- 对培育当代革命军人核心价值观的调查与思考.docx
- 2013-2022年十年高考英语各题型考点对比分析(共7个专题).pdf
- 某市医疗保障局年深入开展医保领域群众身边腐败和作风问题专项整治工作方案.docx VIP
- 论持久战全文--毛泽东_txt下载.docx
- RIGOL普源精电DSA800配置手册用户手册.pdf
- 【大单元教学】第一单元《民艺蕴情》第2课《多样的中国民间美术》课件(36页)--人美2024版七年级下册.pptx VIP
- 劳动出版社《电机与电气控制(第三版)习题册》答案.pdf
文档评论(0)