Oracle数据库中游标的游标的使用
本人不喜欢说概念啥的,就直接说明使用方法吧
案例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数据库中游标的游标的使用相关推荐
- oracle数据库中游标的使用,oracle数据库游标的使用方法
游标分为隐式游标和显示游标. 一.隐式游标 对于select * into和DML操作(update.delete.insert)都附带有一个隐式游标. 隐式游标的属性 SQL%ROWCOUNT ...
- Oracle存储过程中游标的简单使用
初衷: 存储过程中查询语句如何返回多行结果? 我们知道,如果存储过程中查询语句有多行结果输出,会报错: ORA-01422: exact fetch returns more than request ...
- oracle实验使用游标,Oracle数据库实验-PLSQL游标、过程、函数、包的使用
Oracle数据库基础 实验5 PL/SQL游标.过程.函数.包的使用 [实验学时] 2学时 [实验目的] 1.了解PL/SQL语言中显式游标和隐式游标的概念和属性. 2.了解显式游标和隐式游标的差异 ...
- 13、oracle数据库下的游标
ORACLE下的游标操作 游标是sql的一个内存工作区,由系统或者用户以变量的形式定义.游标的作用是用于临时存储从数据库中提取的数据块.游标有静态游标.动态游标之分,静态游标又可分为隐式游标和显式游标 ...
- python中操作数据库中游标的使用方法
cursor就是一个Cursor对象,这个cursor是一个实现了迭代器(def__iter__())和生成器(yield)的MySQLdb对象,这个时候cursor中还没有数据,只有等到fetcho ...
- oracle 游标查询数据库,Oracle数据库使用游标查询结果集所有数据
--Oracle使用游标查询结果集所有数据 DECLARE myTabelName NVARCHAR2(200):=''; --表名 myTableRowComment NVARCHAR2(200): ...
- Oracle数据库游标在存储过程中的使用
作为关系型数据库市场的老大,Oracla占有举足轻重的地位.虽然在操作上不如SQLSERVER那样方便,但是他的强大的功能<br>还是吸引来大批大批的追随着.本人作为ORACLE菜鸟, ...
- oracle 游标 904,如何解决Oracle数据库游标连接超出问题
如何解决Oracle数据库游标连接超出问题 发布时间:2020-07-21 10:57:35 来源:亿速云 阅读:103 作者:小猪 这篇文章主要讲解了如何解决Oracle数据库游标连接超出问题,内容 ...
- oracle利用游标添加数据库,Oracle数据库游标的类型及使用实例全解
游标是SQL的一个内存工作区,由系统或用户以变量的形式定义.游标的作用就是用于临时存储从数据库中提取的数据块.Oracle数据库的Cursor类型包含三种: 静态游标:分为显式(explicit)游标 ...
最新文章
- 【论文速读】城市自动驾驶应用的概率语义地图
- 【Network】Neutron-Docker-K8S
- Retrofit2 multpart多文件上传详解
- 《终身成长》读书笔记(part3)--如果一个人能学会什么东西,那么世界上其他人也都可以学会
- WordPress翻译更新失败解决方法
- MessagePack Java Jackson Dataformat 在 Map 中不使用 String 为 Key 的序列化
- 8个让DevOps转型取得成功的关键步骤
- 教孩子学编程 python 下载_教孩子学编程 python语言版
- 2019年最新个人所得税计算器(源码/网页版/已发布)
- PHP之Smarty
- Js学习之拖拉事件(drag)
- eclipse黄色波浪线去除
- PowerMock使用-Mock私有方法
- 重疾险对比:“瑞泰瑞享安康” V.S. “信泰百万无忧”
- 基于神经网络的文本分类算法
- 高中数学怎么学好怎样才能学好高一数学
- 临床辅助系统CDSS程序
- 移动MAS短信平台发送短信
- 使用matlab实现ISD悬架离散仿真分析
- 图像处理:模糊图像判断
热门文章
- 关于web前端的学习路线
- JS——实现短信验证码的倒计时功能(没有验证码,只有倒计时)
- 用1、2、2、3、4、5这六个数字,用java写一个main函数,打印出所有不同的排列,如:512234、412345等,要求:4不能在第三位,3与5不能相连。...
- IRasterStatistics Interface
- Python docs
- OpenSocial容器 shindig
- 操作系统04进程同步与通信
- java spring cloud 版 b2b2c 社交电商-服务消费者(Feign)
- 递归原来可以so easy|-连载(3)
- IBM量子计算新突破:成功构建50个量子比特原型机