本人不喜欢说概念啥的,就直接说明使用方法吧

案例1:

 1 DECALRE
 2        --声明游标
 3 CURSOR C_USER(C_ID NUMBER) IS
 4        SELECT NAME FROM USER WHERE TYPEID = C_ID;
 5        V_NAME C_USER%rowtype; --定义游标变量
 6 BEGIN
 7 OPEN C_USER(变量值);    --打开游标
 8     LOOP
 9         FETCH C_USER INTO V_NAME;
10         EXIT FETCH C_USER%NOT FOUND;
11         do something
12     END LOOP
13 CLOSE C_USER;
14 END;  

View Code

是不是有点看不懂,没关系,我也没怎么看得懂

所以案例2:

说明:

  1、file$是表名,file#, status$,blocks 是字段名

  2、将表file$中的file#, status$,blocks 数据列出来,相当于select file#, status$,blocks from file$;

--连接系统数据库
SQL>conn / as sysdba--以下是在sql窗口下执行的
declare--声明游标Cursor cur_file isselect file#, status$,blocks from file$;CurFileInfo cur_file%rowtype;  --定义游标变量(所有的变量都在里面)
beginopen  cur_file; --打开游标
       LoopFetch cur_file into CurFileInfo ; Exit when cur_file%notfound;--查不到数据则退出;Dbms_Output.put_line(CurFileInfo.file#);end loop;Exception--出现异常,则关闭游标,并打印出问题来when others thenclose cur_file;Dbms_Output.put_line(sqlerrm);if cur_file%isopen then--关闭游标close cur_file;end if;
end;

然后稍微进阶一下:

案例3:

问题:假如我查到多个表,而每个表都要加入同一个字段,这个怎么解决。

解决办法如下:

 1 --连接数据库,是在命令窗口下执行的
 2 登陆系统:
 3 sqlplus /nolog
 4 以管理员的身份运行:
 5 SQL>conn / as sysdba
 6
 7 --以下是在SQL窗口下执行的
 8 DECLARE
 9         ADD_SQL    VARCHAR2(1000);        --定义添加字段的语句
10         ADD_TABLE_NAME  VARCHAR2(50);     --定义获取的表名
11         CURSOR ADD_TABLE_FIELD IS   --取名添加表字段
12                SELECT TABLE_NAME FROM USER_TABLES where table_name like 'WRI%SYNOPSIS$' ; --查出指定的表出来
13 BEGIN
14                OPEN ADD_TABLE_FIELD;
15                LOOP
16                     --提取一行数据到ADD_TABLE_FIELD
17                     FETCH ADD_TABLE_FIELD  INTO ADD_TABLE_NAME;
18                           --判断是否读取到,没读取到就退出
19                           --%notfound是没有取到的意思
20                           EXIT WHEN ADD_TABLE_FIELD%NOTFOUND;
21
22                           --下面sql语句中,表名两边都要有空格,不然不会执行语句的,即:[table ']和[' add]不能写成[table']和['add]
23                           ADD_SQL  := 'alter table ' || ADD_TABLE_NAME || ' add 修改人 varchar2(20)';
24                           EXECUTE IMMEDIATE ADD_SQL;--执行该语句
25
26                 END LOOP;--关闭游标
27                 CLOSE ADD_TABLE_FIELD;
28 END;    

好了,差不多了,就这样了。

等等,你们应该没有照搬执行吧,不然的话, 怎么删除我增加的列呢?

转载于:https://www.cnblogs.com/liu0799/p/9679815.html

Oracle数据库中游标的游标的使用相关推荐

  1. oracle数据库中游标的使用,oracle数据库游标的使用方法

    游标分为隐式游标和显示游标. 一.隐式游标 对于select * into和DML操作(update.delete.insert)都附带有一个隐式游标. 隐式游标的属性 SQL%ROWCOUNT   ...

  2. Oracle存储过程中游标的简单使用

    初衷: 存储过程中查询语句如何返回多行结果? 我们知道,如果存储过程中查询语句有多行结果输出,会报错: ORA-01422: exact fetch returns more than request ...

  3. oracle实验使用游标,Oracle数据库实验-PLSQL游标、过程、函数、包的使用

    Oracle数据库基础 实验5 PL/SQL游标.过程.函数.包的使用 [实验学时] 2学时 [实验目的] 1.了解PL/SQL语言中显式游标和隐式游标的概念和属性. 2.了解显式游标和隐式游标的差异 ...

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

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

  5. python中操作数据库中游标的使用方法

    cursor就是一个Cursor对象,这个cursor是一个实现了迭代器(def__iter__())和生成器(yield)的MySQLdb对象,这个时候cursor中还没有数据,只有等到fetcho ...

  6. oracle 游标查询数据库,Oracle数据库使用游标查询结果集所有数据

    --Oracle使用游标查询结果集所有数据 DECLARE myTabelName NVARCHAR2(200):=''; --表名 myTableRowComment NVARCHAR2(200): ...

  7. Oracle数据库游标在存储过程中的使用

      作为关系型数据库市场的老大,Oracla占有举足轻重的地位.虽然在操作上不如SQLSERVER那样方便,但是他的强大的功能<br>还是吸引来大批大批的追随着.本人作为ORACLE菜鸟, ...

  8. oracle 游标 904,如何解决Oracle数据库游标连接超出问题

    如何解决Oracle数据库游标连接超出问题 发布时间:2020-07-21 10:57:35 来源:亿速云 阅读:103 作者:小猪 这篇文章主要讲解了如何解决Oracle数据库游标连接超出问题,内容 ...

  9. oracle利用游标添加数据库,Oracle数据库游标的类型及使用实例全解

    游标是SQL的一个内存工作区,由系统或用户以变量的形式定义.游标的作用就是用于临时存储从数据库中提取的数据块.Oracle数据库的Cursor类型包含三种: 静态游标:分为显式(explicit)游标 ...

最新文章

  1. 【论文速读】城市自动驾驶应用的概率语义地图
  2. 【Network】Neutron-Docker-K8S
  3. Retrofit2 multpart多文件上传详解
  4. 《终身成长》读书笔记(part3)--如果一个人能学会什么东西,那么世界上其他人也都可以学会
  5. WordPress翻译更新失败解决方法
  6. MessagePack Java Jackson Dataformat 在 Map 中不使用 String 为 Key 的序列化
  7. 8个让DevOps转型取得成功的关键步骤
  8. 教孩子学编程 python 下载_教孩子学编程 python语言版
  9. 2019年最新个人所得税计算器(源码/网页版/已发布)
  10. PHP之Smarty
  11. Js学习之拖拉事件(drag)
  12. eclipse黄色波浪线去除
  13. PowerMock使用-Mock私有方法
  14. 重疾险对比:“瑞泰瑞享安康” V.S. “信泰百万无忧”
  15. 基于神经网络的文本分类算法
  16. 高中数学怎么学好怎样才能学好高一数学
  17. 临床辅助系统CDSS程序
  18. 移动MAS短信平台发送短信
  19. 使用matlab实现ISD悬架离散仿真分析
  20. 图像处理:模糊图像判断

热门文章

  1. 关于web前端的学习路线
  2. JS——实现短信验证码的倒计时功能(没有验证码,只有倒计时)
  3. 用1、2、2、3、4、5这六个数字,用java写一个main函数,打印出所有不同的排列,如:512234、412345等,要求:4不能在第三位,3与5不能相连。...
  4. IRasterStatistics Interface
  5. Python docs
  6. OpenSocial容器 shindig
  7. 操作系统04进程同步与通信
  8. java spring cloud 版 b2b2c 社交电商-服务消费者(Feign)
  9. 递归原来可以so easy|-连载(3)
  10. IBM量子计算新突破:成功构建50个量子比特原型机