这个lt;Oracle 游标使用全解gt;文档几乎包含了Oracle游标使用的方方面面,全部通过了测试

这个文档几乎包含了Oracle游标使用的方方面面,全部通过了测试

-- 声明游标;CURSOR cursor_name IS select_statement

--For 循环游标

--(1)定义游标

--(2)定义游标变量

--(3)使用for循环来使用这个游标

declare

--类型定义

cursor c_job

is

select empno,ename,job,sal

from emp

where job='MANAGER';

--定义一个游标变量v_cinfo c_emp%ROWTYPE ,该类型为游标c_emp中的一行数据类型

c_row c_job%rowtype;

begin

for c_row in c_job loop

dbms_output.put_line(c_row.empno||'-'||c_row.ename||'-'||c_row.job||'-'||c_row.sal);

end loop;

end;

--Fetch游标

--使用的时候必须要明确的打开和关闭

declare

--类型定义

cursor c_job

is

select empno,ename,job,sal

from emp

where job='MANAGER';

--定义一个游标变量

c_row c_job%rowtype;

begin

open c_job;

loop

--提取一行数据到c_row

fetch c_job into c_row;

--判读是否提取到值,没取到值就退出

--取到值c_job%notfound 是false

--取不到值c_job%notfound 是true

exit when c_job%notfound;

dbms_output.put_line(c_row.empno||'-'||c_row.ename||'-'||c_row.job||'-'||c_row.sal);

end loop;

--关闭游标

close c_job;

end;

--1:任意执行一个update操作,用隐式游标sql的属性%found,%notfound,%rowcount,%isopen观察update语句的执行情况。

begin

update emp set ENAME='ALEARK' WHERE EMPNO=7469;

if sql%isopen then

dbms_output.put_line('Openging');

else

dbms_output.put_line('closing');

end if;

if sql%found then

dbms_output.put_line('游标指向了有效行');--判断游标是否指向有效行

else

dbms_output.put_line('Sorry');

end if;

if sql%notfound then

dbms_output.put_line('Also Sorry');

else

dbms_output.put_line('Haha');

end if;

dbms_output.put_line(sql%rowcount);

exception

when no_data_found then

dbms_output.put_line('Sorry No data');

when too_many_rows then

dbms_output.put_line('Too Many rows');

end;

declare

empNumber emp.EMPNO%TYPE;

empName emp.ENAME%TYPE;

begin

if sql%isopen then

dbms_output.put_line('Cursor is opinging');

else

dbms_output.put_line('Cursor is Close');

end if;

if sql%notfound then

dbms_output.put_line('No Value');

else

dbms_output.put_line(empNumber);

end if;

dbms_output.put_line(sql%rowcount);

dbms_output.put_line('-------------');

select EMPNO,ENAME into empNumber,empName from emp where EMPNO=7499;

dbms_output.put_line(sql%rowcount);

if sql%isopen then

dbms_output.put_line('Cursor is opinging');

else

dbms_output.put_line('Cursor is Closing');

end if;

if sql%notfound then

dbms_output.put_line('No Value');

else

dbms_output.put_line(empNumber);

end if;

exception

when no_data_found then

dbms_output.put_line('No Value');

when too_many_rows then

dbms_output.put_line('too many rows');

end;

--2,使用游标和loop循环来显示所有部门的名称

--游标声明

declare

cursor csr_dept

is

--select语句

select DNAME

from Depth;

--指定行指针,这句话应该是指定和csr_dept行类型相同的变量

row_dept csr_dept%rowtype;

begin

--for循环

for row_dept in csr_dept loop

dbms_output.put_line('部门名称:'||row_dept.DNAME);

end loop;

end;

本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉

本文系统来源:php中文网

oracle用游标,Oracle游标使用全解相关推荐

  1. Oracle 游标使用全解

    Oracle 游标使用全解 这个文档几乎包含了oracle游标使用的方方面面,全部通过了测试 -- 声明游标:CURSOR cursor_name IS select_statement --For ...

  2. Oracle中游标Cursor基本用法详解

    这篇文章主要介绍了Oracle中游标Cursor基本用法详解,还是比较全面的,具有一定参考价值,需要的朋友可以了解下. 查询 SELECT语句用于从数据库中查询数据,当在PL/SQL中使用SELECT ...

  3. oracle 记录给游标,Oracle游标 CURSOR实例详解

    一.游标概述: 游标(cursor)是数据库系统在内存中开设的一个数据缓冲区,存放SQL语句的执行结果. 每个游标都有一个名字,用户可以用SQL语句逐一从游标中获取记录,并赋给变量做进一步处理. 作用 ...

  4. oracle利用游标添加数据库,Oracle游标的使用实例详解

    什么是游标? ①从表中检索出结果集,从中每次指向一条记录进行交互的机制. ②关系数据库中的操作是在完整的行集合上执行的. 由 SELECT 语句返回的行集合包括满足该语句的 WHERE 子句所列条件的 ...

  5. oracle中创建游标,oracle 存储过程创建游标

    Oracle与Sql Server差异点详解 1.create函数或存储过程异同点 Oracle 创建函数或存储过程一般是 create or replace -- SQL SERVER 则是在创建之 ...

  6. oracle中判断空,Oracle中判断空游标的方法

    1.声明包 create or replace package TAL_TEST is -- Author : ADMINISTRATOR -- Created : 2012/12/9 15:15:3 ...

  7. 13、oracle数据库下的游标

    ORACLE下的游标操作 游标是sql的一个内存工作区,由系统或者用户以变量的形式定义.游标的作用是用于临时存储从数据库中提取的数据块.游标有静态游标.动态游标之分,静态游标又可分为隐式游标和显式游标 ...

  8. oracle创建多个游标,Oracle——游标的创建和使用

    游标 SQL语言是面向集合的,是对指定列的操作.如果要对列中的指定行进行操作,就必须使用游标. 当在PL/SQL块中执行查询语句(SELECT) 和数据操纵语句(DML) 时,Oracle会为其分配一 ...

  9. oracle 如何创建游标,Oracle--plsql游标创建和使用

    Oracle--plsql游标创建和使用 为什么要游标: 先看这个: DECLARE v_empno emp.empno%type; v_ename emp.ename%type; BEGIN SEL ...

最新文章

  1. 使用OpenVINO加速Pytorch表情识别模型
  2. 我和大师Jeffrey Richter相约@北京
  3. 计算机游戏与动漫设计大赛,我院获第10届中国大学生计算机设计大赛 数字媒体设计类动漫游戏组一等奖...
  4. Go 永久阻塞的方法
  5. c语言怎么样文件存储数据,急求如何将下列C语言程序数据存储到文件中?
  6. ORACLE DATAGUARD 数据库---创建逻辑备用数据库
  7. SQL语言基础-数据查询
  8. 计算机科学导论2000字报告,《计算机科学导论》(节选)翻译报告
  9. http-server基本使用
  10. 韩昊 20190919-1 每周例行报告
  11. LabVIEW编程LabVIEW控制GPS例程与相关资料
  12. (一百二十三)Android O 了解wifi eap中的anonymous identity
  13. linux CentOS7虚拟机修改静态ip地址
  14. 编译php8,Centos编译体验PHP8 Alpha 2
  15. 如何判断网站使用的操作系统
  16. 【Hive】大数据的排序和拼接
  17. app应用内升级方案选型与优化
  18. set_global_opts使用说明
  19. 基于引擎开发HTML5游戏实战(二)---游戏剧本
  20. 同济大学数理强化计算机,同济大学考研之学科设置介绍

热门文章

  1. 明星分手文案火了!为了营销 你们这些商家也是很努力啊...
  2. 潘石屹回复“5G牌照发放”:我的5G号码可以启用了
  3. 魅族管理层换血?官方回应:信息被错误解读 黄章仍为最大股东
  4. 小米公布Q1手机出货量:驳斥暴跌谣言
  5. 盘点过去10年美国规模最大科技公司IPO:阿里一直是纪录保持者
  6. 阿里巴巴北京总部鸟瞰图曝光:今天又是想去阿里上班的一天!
  7. iPhone降价后销量惊人 库克本周将再度访华
  8. IOS的IPV6测试
  9. Please make sure you have the correct access rights and the repository exists
  10. Java成神之路——一文搞懂CAS