PL/SQL 游标

emp、dept 目标表结构及数据

要求

  • 基于部门表建立游标dept_cursor1,使用记录变量接收游标数据,输出部门表信息;
    显示格式:
    部 门 号: XXX
    部门名称: XXX
    所在位置: XXX

  • 基于部门表建立游标dept_cursor2,使用标量变量接收游标数据,输出部门表信息;
    显示格式:部门号:XXX 部门名称:XXX 所在位置:XXX

  • 基于雇员表建立游标emp_cursor,根据用户输入的部门号,输出该部门薪水在5000元上的雇员姓名、薪水.
    显示格式:雇员姓名:XXX 薪水:XXX

1.基于部门表建立游标dept_cursor1,使用记录变量接收游标数据,输出部门表信息;
显示格式:
部 门 号: XXX
部门名称: XXX
所在位置: XXX

declare
  cursor dept_cursor1 is
  select dno,dname,loc from dept;

  dept_record dept%rowtype;

begin
  open dept_cursor1;
  loop
       fetch dept_cursor1 into dept_record;

       exit when dept_cursor1%notfound or dept_cursor1%rowcount > 3;
       dbms_output.put_line('部门号:'||dept_record.dno);
       dbms_output.put_line('部门名称:'||dept_record.dname);
       dbms_output.put_line('所在位置:'||dept_record.loc);

  end loop;
  close dept_cursor1;
end;
       

2.基于部门表建立游标dept_cursor2,使用标量变量接收游标数据,输出部门表信息;
显示格式:部门号:XXX 部门名称:XXX 所在位置:XXX

declare
  cursor dept_cursor2 is
  select dno,dname,loc from dept;
  v_deptno dept.dno%type;
  v_deptname dept.dname%type;
  v_deptloc dept.loc%type;

begin
  open dept_cursor2;
  loop
       fetch dept_cursor2 into v_deptno,v_deptname,v_deptloc;

       exit when dept_cursor2%notfound or dept_cursor2%rowcount > 3;
       dbms_output.put_line('部门号:'||v_deptno||',部门名称:'||v_deptname||',所在地:'||v_deptloc);

  end loop;
  close dept_cursor2;
end;
       

3.基于雇员表建立游标emp_cursor,根据用户输入的部门号,输出该部门薪水在5000元上的雇员姓名、薪水.
显示格式:雇员姓名:XXX 薪水:XXX

declare
  cursor emp_cursor is
  select ename,sal from  emp where dno = &dno;
  v_ename emp.ename%type;
  v_sal emp.sal%type;

begin  

 open emp_cursor;
    loop
       fetch emp_cursor into v_ename,v_sal;
       exit when emp_cursor%notfound;
       if v_sal > 5000
       then
         dbms_output.put_line('雇员姓名:'||v_ename||',薪水:'||v_sal);
       end if;
   end loop;
  close emp_cursor;

end;
  

PL/SQL 游标 (实验七)的更多相关文章

  1. PL/SQL 游标

    本随笔不是原创,只是学习笔记,用于加深记忆,原创地址PL/SQL --> 游标 一.游标的相关概念和特性 1.定义: 映射到结果集中的某一行的特定位置,类似与C语言中的指针.即通过游标方式定位到 ...

  2. 6 关于 Oracle NULL栏位和PL./SQL执行实验

    今日有针对NULL值有了相关实验. 对NULL 值插入的讨论. 1, PL/SQL 中可以执行插入''或者NULL 的操作, 前提是栏位允许为空. 2, 可以对NULL进行一系列数据库运算. 如:   ...

  3. Oracle数据库之PL/SQL游标

    1. 游标概念 字面意思是游动的光标,是指向上下文区域的句柄或指针. 在PL/SQL块中执行CRUD操作时,ORACLE会在内存中为其分配上下文区.用数据库语言来描述游标就是:映射在上下文区结果集中一 ...

  4. Oracle PL/SQL 游标

    在PL/SQL块中执行SELECT.INSERT.DELETE和UPDATE语句时,ORACLE会在内存中为其分配上下文区(Context Area),即缓冲区.游标是指向该区的一个指针,或是命名一个 ...

  5. PL/SQL 游标的使用

     游标的使用 ①游标概念 为了处理SQL 语句,ORACLE 必须分配一片叫上下文( context area )的区域来处理所必需的信息, 当中包含要处理的行的数目.一个指向语句被分析以后的表示 ...

  6. PL/SQL游标详解

    刚打开游标的时候,是位于一个空行,要用fetch into 才能到第一行. 只是要注意用更新游标的时候,不能在游标期间commit. 否则会报ORA-01002: fetch out of seque ...

  7. C#(在WeBAPI)获取Oracle(在PL/SQL)游标类型的存储过程(用到了RefCursor)

    需求:WebAPI服务端,通过Oracle数据库的存储过程,获取数据. 在PL/SQL 建立存储过程:(先来最简单的,就是把整个表都查出来) create or replace procedure S ...

  8. Oracle PL/SQL游标

    游标的提出: SQL是面向集合的,其结果一般是集合量(多条记录),而PL/SQL的变量一本是标量,其一组变量异常一直只能存放一条记录.所以仅仅使用变量并不能完全满足SQL语句向应用程序输出数据的要求. ...

  9. pl/sql游标

    通过游标,我们可以取得返回结果集的任何一行记录,提高效率. 定义游标: type 游标名 is ref cursor 变量名 游标名 打开游标: open 游标变量 for select语句: 取出当 ...

随机推荐

  1. 浅谈python 复制(深拷贝,浅拷贝)

    博客参考:点击这里 python中对象的复制以及浅拷贝,深拷贝是存在差异的,这儿我们主要以可变变量来演示,不可变变量则不存在赋值/拷贝上的问题(下文会有解释),具体差异如下文所示 1.赋值: a=[1 ...

  2. win10 uwp 兴趣线

    本文讲的是如何去做一个时间轴样子的东西但我们放的不一定是时间,可能是我们的时间.我把它放在我的CSDN阅读,我的界面做出来很差,但是应该读者能做出很漂亮的. 行间距 我们在ViewModel写一个Ob ...

  3. 如何设置App的启动图

    如何设置App的启动图,也就是Launch Image? Step1 1.点击Image.xcassets 进入图片管理,然后右击,弹出"New Launch Image" 2.如 ...

  4. MongoDB基本命令行操作

    1. 连接MongoDB: Mongodb://username:password@hostname/dbname 2. 创建数据库: use dbname:如果数据库不存在则创建数据库,否则切换到指 ...

  5. VPS搭建离线下载服务器——后网盘时代

    动机 由于学习的需要,在国外某服务器厂商购买了vps服务(至于是哪个厂商就不说啦).但是呢,就算用作梯子,一个月1T的流量总是用不完.最经觉得自己营养充足,想找点电影看看. 无奈现在百度网盘的速度真的 ...

  6. 读书笔记-你不知道的JS上-闭包与模块

    闭包定义 当函数可以记住并访问所在的词法作用域时,就产生了闭包,即使函数是在当前词法作用域之外执行. 看一段最简单的闭包代码: function foo() { var a = 2; //闭包 fun ...

  7. A Simple Math Problem(矩阵快速幂)(寒假闭关第一题,有点曲折啊)

    A Simple Math Problem Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Other ...

  8. replace to

    要注意的是:插入数据的表必须有主键或者是唯一索引!否则的话,replace into 会直接插入数据,这将导致表中出现重复的数据. MySQL replace into 有三种形式: 1. repla ...

  9. 英语学习笔记---01---新概念第一册---Lesson 1 Excuse me!

    Lesson 1   Excuse me!   [词汇] excuse [iks5kju:z]                      v. 原谅      劳驾.借光 me             ...

  10. Matrix 矩阵

    CSS3中的矩阵指的是一个方法,书写为matrix()和matrix3d(),前者是元素2D平面的移动变换(transform),后者则是3D变换.2D变换矩阵为3*3, 如上面矩阵示意图:3D变换则 ...