Oracle数据库中游标的游标的使用
本人不喜欢说概念啥的,就直接说明使用方法吧
案例1:
DECALRE
--声明游标
CURSOR C_USER(C_ID NUMBER) IS
SELECT NAME FROM USER WHERE TYPEID = C_ID;
V_NAME C_USER%rowtype; --定义游标变量
BEGIN
OPEN C_USER(变量值); --打开游标
LOOP
FETCH C_USER INTO V_NAME;
EXIT FETCH C_USER%NOT FOUND;
do something
END LOOP
CLOSE C_USER;
END;
是不是有点看不懂,没关系,我也没怎么看得懂
所以案例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 is
select file#, status$,blocks from file$;
CurFileInfo cur_file%rowtype; --定义游标变量(所有的变量都在里面)
begin
open cur_file; --打开游标
Loop
Fetch cur_file into CurFileInfo ;
Exit when cur_file%notfound;--查不到数据则退出;
Dbms_Output.put_line(CurFileInfo.file#);
end loop;
Exception--出现异常,则关闭游标,并打印出问题来
when others then
close cur_file;
Dbms_Output.put_line(sqlerrm); if cur_file%isopen then
--关闭游标
close cur_file;
end if;
end;
然后稍微进阶一下:
案例3:
问题:假如我查到多个表,而每个表都要加入同一个字段,这个怎么解决。
解决办法如下:
--连接数据库,是在命令窗口下执行的
登陆系统:
sqlplus /nolog
以管理员的身份运行:
SQL>conn / as sysdba --以下是在SQL窗口下执行的
DECLARE
ADD_SQL VARCHAR2(1000); --定义添加字段的语句
ADD_TABLE_NAME VARCHAR2(50); --定义获取的表名
CURSOR ADD_TABLE_FIELD IS --取名添加表字段
SELECT TABLE_NAME FROM USER_TABLES where table_name like 'WRI%SYNOPSIS$' ; --查出指定的表出来
BEGIN
OPEN ADD_TABLE_FIELD;
LOOP
--提取一行数据到ADD_TABLE_FIELD
FETCH ADD_TABLE_FIELD INTO ADD_TABLE_NAME;
--判断是否读取到,没读取到就退出
--%notfound是没有取到的意思
EXIT WHEN ADD_TABLE_FIELD%NOTFOUND; --下面sql语句中,表名两边都要有空格,不然不会执行语句的,即:[table ']和[' add]不能写成[table']和['add]
ADD_SQL := 'alter table ' || ADD_TABLE_NAME || ' add 修改人 varchar2(20)';
EXECUTE IMMEDIATE ADD_SQL;--执行该语句 END LOOP;--关闭游标
CLOSE ADD_TABLE_FIELD;
END;
好了,差不多了,就这样了。
等等,你们应该没有照搬执行吧,不然的话, 怎么删除我增加的列呢?
Oracle数据库中游标的游标的使用的更多相关文章
- Oracle存储过程中游标的简单使用
存储过程中查询语句如何返回多行结果? 我们知道,如果存储过程中查询语句有多行结果输出,会报错:ORA-01422: exact fetch returns more than requested nu ...
- oracle数据库中的游标
oracle中的游标,游标的概念与作用,游标的分类,游标的使用. 一,游标的概念与作用 摘自百度百科:游标(Cursor)是处理数据的一种方法,为了查看或者处理结果集中的数据,游标提供了在结果集中一次 ...
- 在python操作数据库中游标的使用方法
cursor就是一个Cursor对象,这个cursor是一个实现了迭代器(def__iter__())和生成器(yield)的MySQLdb对象,这个时候cursor中还没有数据,只有等到fetcho ...
- 2018.5.30 Oracle数据库PLSQL编程---游标的使用
显示游标的步骤 /* 显示游标处理步骤 1.声明游标 语法结构:cursor 游标名称 is SQL 语句; 2.打开游标 语法结构:open游标名称; 3.提取数据 语法结构:fetch 4.关闭游 ...
- oracle数据库之游标的使用
一.游标概念 为了处理 SQL 语句,ORACLE 必须分配一片叫上下文( context area )的区域来处理所必需的信息,其中包括要处理的行的数目,一个指向语句被分析以后的表示形式的指针以及查 ...
- Oracle数据库游标的类型
游标是SQL的一个内存工作区,由系统或用户以变量的形式定义.游标的作用就是用于临时存储从数据库中提取的数据块.Oracle数据库的Cursor类型包含三种: 静态游标:分为显式(explicit)游标 ...
- Oracle数据库基础知识
oracle数据库plsql developer 目录(?)[-] 一 SQL基础知识 创建删除数据库 创建删除修改表 添加修改删除列 oracle cascade用法 添加删除约束主键外 ...
- 【Java EE 学习 29 下】【JDBC编程中操作Oracle数据库】【调用存储过程的方法】
疑问:怎样判断存储过程执行之后返回值是否为空. 一.连接oracle数据库 1.需要的jar包:在安装的oracle中就有,所以不需要到官网下载,我的oracle11g下:D:\app\kdyzm\p ...
- python操作oracle数据库-查询
python操作oracle数据库-查询 参照文档 http://www.oracle.com/technetwork/cn/articles/dsl/mastering-oracle-python- ...
随机推荐
- 人民币金额大小写Js转换
/** * 数字转中文 * @param dValue * @returns */ function chineseNumber(dValue) { var maxDec = 2; // 验证输入金额 ...
- JavaScript数据类型 数据转换
JavaScript数据类型分为两种:原始类型和对象类型,原始类型有:number(数字).string(文本).boolean(布尔值).null(空).undefined(未定义):对象类型有:A ...
- mvc中在Action里调用另一个Action
今天做东西时发现一个新东西.即在一个Action调用另一Action.前提是同一个控制器.(没在一个控制里的没试过) 调用方法: public ActionResult Test1(){ //to ...
- 安装redis服务端
1. redis服务端和客户端的安装 [root@xxx ~]# cd /usr/local/src [root@xxx src]# wget http://download.redis.io/rel ...
- 绘图和数据可视化工具包——matplotlib
一.Matplotlib介绍 Matplotlib是一个强大的Python**绘图**和**数据可视化**的工具包. # 安装方法 pip install matplotlib # 引用方法 impo ...
- 从list中随机选出几个数,并按照原来的顺序排列
需求: 从list中随机选出几个数,并按照原来的顺序排列(比如从list中随机选出6个数) 方案一: //若对象size大于6,则随机去除6个对象,并按照原来的顺序排列 while(list.size ...
- (转)原生ajax的写法
1.创建XMLHttpRequest对象 function createXMLHTTPRequest() { //1.创建XMLHttpRequest对象 //这是XMLHttpReuquest对象无 ...
- stateless函数里面的参数问题
UI组件文件: function Selector({ status1, status2, status3 }){ return (<div><span>demo</sp ...
- toMapFromStage layerDefinitions ClassBreakRenderer
class Map 方法 toMapFromStage 用于把屏幕坐标转换为地理坐标 public function toMapFromStage(stageX:Number, stageY:Numb ...
- 【阿里云产品公测】PTS压力测试最低配ECS性能及评测
PTS是一个性能测试工具,可以使用PTS对自身系统性能在阿里云环境里的状况进行整体评估来找出你的系统性能瓶颈从而优化系统,同时你还可以在了解自己的系统性能指标情况下便于未来新增扩容.在使用PTS前你必 ...