显示游标的步骤

/*
显示游标处理步骤
1.声明游标
语法结构:cursor 游标名称 is SQL 语句;
2.打开游标
语法结构:open游标名称;
3.提取数据
语法结构:fetch
4.关闭游标
*/

1.显示员工表中的姓名(返回的是多条记录,必须使用游标来处理)

set serveroutput on;--设置plslql显示结果命令

--代码块
declare
--变量
--1.声明游标
cursor c_emp is select ename,sal from emp;
v_ename emp.ename%type;
v_sal emp.sal%type;
begin
--代码块
--2.打开游标
open c_emp;
--使用loop循环
loop
--3.提取数据
fetch c_emp into v_ename,v_sal;
exit when c_emp%notfound; --判断游标是否还有数据
--输出信息
dbms_output.put_line('姓名:'||v_ename||',工资:'||v_sal);
end loop;
end;
/

--4.关闭游标

close c_emp;

end;

--2.record类型实现

declare

cursor c_emp is select ename,sal from emp;

type type_emp is record(

v_ename emp.ename%type,

v_sal emp.sal%type

);

v_record type_emp;

begin

--代码块

--2.打开游标

open c_emp;

--使用loop循环

loop

--3.提取数据

fetch c_emp into v_record;

exit when c_emp%notfound; --判断游标是否还有数据

--输出信息

dbms_output.put_line('姓名:'||v_record.v_ename||',工资:'||v_record.v_sal);

end loop;

--4.关闭游标

close c_emp;

end;

--3.扩展:使用游标类型来转换

declare

cursor c_emp is select ename,sal,dname,loc from emp e,dept d where e.deptno=d.deptno;

v_cursor_emp c_emp%rowtype;

begin

--代码块

--2.打开游标

open c_emp;

--使用loop循环

loop

fetch c_emp into v_cursor_emp;

--3.提取数据

exit when c_emp%notfound; --判断游标是否还有数据

--输出信息

dbms_output.put_line('姓名:'||v_cursor_emp.ename||',工资:'||v_cursor_emp.sal || '部门名字:'||v_cursor_emp.dname);

end loop;

--4.关闭游标

close c_emp;

end;

--4.for(声明游标即可)

declare

cursor c_emp is select ename,sal,dname,loc from emp e,dept d where d.deptno=e.deptno;

begin

for i in c_emp loop

dbms_output.put_line('姓名:'||i.ename|| '工资:'||i.sal||'部门名称'||i.dname);

end loop;

end;

--5.带参数的游标

declare

cursor c_emp(v_deptno emp.deptno%type)is select ename,sal,dname,loc from emp e,dept d where d.deptno=e.deptno;

begin

for i in c_emp(&n) loop

dbms_output.put_line('姓名:'||i.ename|| '工资:'||i.sal||'部门名称'||i.dname||i.dname);

end loop;

end;

--6.触发器

create or replace trigger t_1

after

insert on emp

begin

dbms_output.put_line('数据已经插入');

end;

insert into emp(empno,ename) values(11,'Legend');

2018.5.30 Oracle数据库PLSQL编程---游标的使用的更多相关文章

  1. Oracle数据库PLSQL编程和存储过程

    一.PLSQL编程 1.1.使用PLSQL实现 Hello world! 1 -- Created on 2022/8/22 by ADMINISTRATOR 2 declare 3 -- 这是申明变 ...

  2. 用Excel导入Oracle数据库plsql

    打开plsql之后,在工具栏点击[tools]--[ODBC Imoprter] 选择导入文件的类型,这里是excel文件,所以选择Excel Files 输入连接数据库的用户名和密码 点击Conne ...

  3. Oracle数据库PLSQL的中文乱码显示全是问号

    plsql连接数据库乱码问题 缘由: 小师妹周末叫我帮她重装数据库,这么大好的周末时光不出去玩儿,给她装数据库这不是很蛋疼么. 我问她为什么要重装,她说:数据存入数据库后,中文字符有乱码,一定是我上次 ...

  4. 2018.6.4 Oracle数据库预定义的异常列表

    declare v_ename emp.ename%type; begin select ename into v_ename from emp where empno=&gno; dbms_ ...

  5. 2018.6.5 Oracle plsql编程 游标的使用

    --3.查询10部门所有员工的姓名.(ref游标实现) 动态游标 declare --创建一种游标类型 type type_cursor is ref cursor; --声明变量指定游标类型 v_c ...

  6. 2018.7.30 Oracle的Blog数据库类型读取和存

    package com.lanqiao.shopping.test; import java.io.BufferedInputStream; import java.io.BufferedOutput ...

  7. Oracle基础 PL-SQL编程基础(4) 异常处理

    异常处理: 即使良好的PL-SQL程序也会遇到错误或者未预料的事件,一个优秀的程序都应该能够处理各种出错情况,尽可能的从错误中恢复.程序在运行时出现的错误成为异常.发生异常后,语句讲终止执行,PLSQ ...

  8. Oracle基础 PL-SQL编程基础(1) 变量和常量

    一.什么是PL-SQL PL-SQL是结合了Oracle过程语言和结构化查询语言(SQL)的一种扩展语言.具体来说,PL-SQL就是在普通的SQL语句的基础上增加了编程语言的特点,将数据操作和查询语句 ...

  9. 2018.5.9 Oracle数据库查询命令

    0.查询所有数据(最简单,但是时间很久) select * from emp; Result: EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO ----- - ...

随机推荐

  1. hdu 1847 Good Luck in CET-4 Everybody!(巴什博弈)

    Good Luck in CET-4 Everybody! HDU - 1847 大学英语四级考试就要来临了,你是不是在紧张的复习?也许紧张得连短学期的ACM都没工夫练习了,反正我知道的Kiki和Ci ...

  2. 洛谷P3258 [JLOI2014]松鼠的新家

    P3258 [JLOI2014]松鼠的新家 题目描述 松鼠的新家是一棵树,前几天刚刚装修了新家,新家有n个房间,并且有n-1根树枝连接,每个房间都可以相互到达,且俩个房间之间的路线都是唯一的.天哪,他 ...

  3. springMVC容器加载源码分析

    springmvc是一个基于servlet容器的轻量灵活的mvc框架,在它整个请求过程中,为了能够灵活定制各种需求,所以提供了一系列的组件完成整个请求的映射,响应等等处理.这里我们来分析下spring ...

  4. Python中list作为默认参数的陷阱

    在Python中,作为默认参数的一定要是不可变对象,如果是可变对象,就会出现问题,稍不注意,就会调入陷阱,尤其是初学者,比如我(┬_┬). 我们来看一个例子. def add(L=[]): L.app ...

  5. 基于rabbitMQ 消息延时队列方案 模拟电商超时未支付订单处理场景

    前言 传统处理超时订单 采取定时任务轮训数据库订单,并且批量处理.其弊端也是显而易见的:对服务器.数据库性会有很大的要求,并且当处理大量订单起来会很力不从心,而且实时性也不是特别好 当然传统的手法还可 ...

  6. POJ1027 The Same Game

    题目来源:http://poj.org/problem?id=1027 题目大意: 题目说的就是现在蛮流行的手机小游戏popstar,求用贪心方法能得到多少分. 小球有三种颜色:R/G/B.横向.纵向 ...

  7. python_魔法方法(三):__str__()和__repr__()

    使用python的魔法方法和time模块定制一个计时器的类 1.用time模块里的localtime()方法获取时间2.time.localtime返回struct_time格式3.表现你的类:__s ...

  8. java多线程 synchronized关键字的一些用法

    看这篇文章啦: http://blog.csdn.net/xiao__gui/article/details/8188833

  9. mysql连接error,Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection .....

    完整error Establishing SSL connection without server's identity verification is not recommended. Accor ...

  10. Entity Framewrok 7beta7中不同版本sql server自动生成分页sql语句的问题

    在EF中,使用linq进行分页是很方便的,假如我们有一个EMP表,结构如下: public class Emp { [Key] public Guid No { get; set; } public ...