- 1、本文档共5页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第六章上机课游标管理
老二牛车教育
《Oracle 数据库应用 》上机课
游标管理
目标:
能够使用游标
第一部分指导
本阶段重点介绍如何使用游标来编写程序,还将介绍如何声明、打开、提取游标中的记录以及最终关
闭游标,最后介绍创建显式游标、REF 游标和循环游标的方法。
阶段一:隐式游标的工作原理
需求说明:
公司的经理想根据职员编号查看其所在的部门名称,部门名称存储在dept_details 表中。请编写
一段代码以接收职员编号并显示相应的部门名称。
实现思路:
此代码需要声明两个VARCHAR2 类型的变量。用户输入empno,该值与employee 表的empno
一致。然后将此deptcode 与dept_details 表的deptcode 列相比较,如果二者一致,则将dept_details
表的相应deptname 返回给用户。
参考步骤:
(1) 启动“ SQL Plus”。
(2 ) 在SQL* Plus 中输入下列代码。
SQLSET SERVEROUTPUT ON
SQLDECLARE
deptnm VARCHAR2(25);
dept_code VARCHAR2(10);
BEGIN
SELECT deptcode INTO dept_code
FROM employee WHERE empno=Employee_Number;
SELECT deptname INTO deptnm
FROM dept_details WHERE deptcode = dept_code;
DBMS_OUTPUT.PUT_LINE(部门名称: );
DBMS_OUTPUT.PUT_LINE();
DBMS_OUTPUT.PUT_LINE(deptnm);
EXCEPTION
WHEN NO_DATA_FOUND THEN
DBMS_OUTPUT.PUT_LINE(职员不存在);
END;
如果输入的empno 在表中存在,则练习 1 的输出结果如图6.1 所示。
老二牛车教育
《Oracle 数据库应用 》上机课
如果输入的empno 在表中不存在,则练习 1 的输出结果如图6.2 所示。
阶段二:显式游标的工作原理
需求说明:
公司的助理销售经理想将总净价大于 2000 元的项目的项目编号和总价值单独存储在 totalworth
表中。要求编写一段代码以显示总净价大于2000 元的项目的项目编号和总价值。
实现思路:
此代码需要声明一个游标以检索结果集的行,还需声明一个%ROWTYPE 类型的变量。Itemcursor
游标从itemfile 表中选择和提取所有行。将itemrate 和qty-hand 列中的值相乘,并检查积是否大
于2000 。如果积大于2000 ,则将这两列对应的项目和产品插入totalworth 表。
参考步骤:
(1) 启动“ SQL Plus”。
(2 ) 在SQL* Plus 中输入下列代码。
DECLARE
itemrec itemfile%ROWTYPE;
CURSOR itemcursor IS SELECT * FROM itemfile;
BEGIN
OPEN itemcursor;
LOOP
FETCH itemcursor INTO itemrec;
EXIT WHEN itemcursor%NOTFOUND;
IF itemrec.itemrate * itemre
文档评论(0)