应无所住,而生其心
排名
3
文章
317
粉丝
22
评论
14
net core webapi post传递参数
庸人 : 确实坑哈,我也是下班好了好几次,发现后台传递对象是可以的,但...
百度编辑器自定义模板
庸人 : 我建议换个编辑器,因为现在百度富文本已经停止维护了,用tinymec...
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:50010702506256
欢迎加群交流技术

Oracle使用游标

6800人阅读 2018/12/29 10:36 总访问:5181855 评论:0 收藏:0 手机
分类: Oracle

其实游标就是把查询的结果放入游标中,然后在去游标里边读取。相当于使用游标做了一个中转,而游标是可以作为参数进行传递的,所以游标可以在存储过程中起来数据集的桥梁作用


游标介绍

1、游标是在内存中开辟的一块区域。

2、游标通过select语句确定从数据库中读取数据的记录集。

3、通过打开(Open)语句把确定的记录集读入到游标开辟的内存区。

4、游标又充当指针的作用。通过执行fetch语句向下移动指针,同时把指针所指的行数据赋给指定的变量中。

5、通过close语句关闭数据库,并释放游标所占的内存区。


使用游标的一般步骤

1、定义一个游标,也就是申明一块内容地址

     注意游标只能使用is,不能使用as

2、给游标关联一个sql语句

3、使用open打开游标,就会执行sql语句,把集合放入内存

4、循环使用fecth去读取游标的内容放入变量中

5、关闭游标,释放内存资源


使用游标查询emp表中的ename与sal字段

  1. declare cursor cursor_emp --1:定义游标
  2. is 
  3.    select ename,sal from scott.emp where deptno = 20;--2:给游标关联一个sql语句
  4.    v_ename scott.emp.ename%type; --定义一个和emp表中ename字段一样的遍历
  5.    v_sal  scott.emp.sal%type;  --定义一个和emp表中sal字段一样的遍历
  6. begin
  7.    open cursor_emp; --3:打开游标
  8.    loop
  9.        fetch cursor_emp into v_ename,v_sal;--4:使用fecth去读取游标的内容放入变量中
  10.        exit when cursor_emp%notfound; --退出条件:当游标读取完内容时退出
  11.        dbms_output.put_line(v_ename||':'||v_sal);
  12.    end loop;
  13.    close cursor_emp;--5、关闭游标,释放内存资源
  14. end;

结果如下:



使用游标查询emp表中所有的字段

其实就是直接查询所有字段

然后使用scott.emp%rowtype;取一个整行的数据类型就行了

  1. declare cursor cursor_emp --1:定义游标
  2. is 
  3.    select * from scott.emp where deptno = 20;--2:给游标关联一个sql语句
  4.    v_row scott.emp%rowtype; --定义一个和emp表中行一样的数据类型
  5. begin
  6.    open cursor_emp; --3:打开游标
  7.    loop
  8.        fetch cursor_emp into v_row;--4:使用fecth去读取游标的内容放入变量中
  9.        exit when cursor_emp%notfound; --退出条件:当游标读取完内容时退出
  10.        dbms_output.put_line(v_row.ename||':'||v_row.sal||':'||v_row.job);
  11.    end loop;
  12.    close cursor_emp;--5、关闭游标,释放内存资源
  13. end;

结果如下:


游标使用参数

  1. declare cursor cursor_emp(p_deptno number--1:定义游标
  2. is 
  3.    select * from scott.emp where deptno = p_deptno;--2:给游标关联一个sql语句
  4.    v_row scott.emp%rowtype; --定义一个和emp表中行一样的数据类型
  5. begin
  6.    open cursor_emp(20); --3:打开游标,传递参数
  7.    loop
  8.        fetch cursor_emp into v_row;--4:使用fecth去读取游标的内容放入变量中
  9.        exit when cursor_emp%notfound; --退出条件:当游标读取完内容时退出
  10.        dbms_output.put_line(v_row.ename||':'||v_row.sal||':'||v_row.job);
  11.    end loop;
  12.    close cursor_emp;--5、关闭游标,释放内存资源
  13. end;


使用游标更新和删除数据

非常忙空了在写┭┮﹏┭┮


游标配合存储过程使用

超级忙空了在写┭┮﹏┭┮



欢迎加群讨论技术,1群:677373950(满了,可以加,但通过不了),2群:656732739。有需要软件开发,或者学习软件技术的朋友可以和我联系~(Q:815170684)

评价

Oracle数据库中没有scott用户

使用SYS用户登录conn sys/密码 as sysdba(默认密码123456)然后找到oracle安装目录下scott.sql的这个文件然后执行命令:@+...

Oracle自定义函数的简单使用

一.最最最简单的返回一个数字的函数createorreplacefunctionfun_show returnint--申明返回值 as begin return1; end;...

Oracle存储过程

一个简单的带输入输出参数的存储过程(求两数之和)createorreplaceprocedureproc_sum(p1int,p2int,presultoutint) as be...

Oracle事务的简单使用

事务:  事务是一个整体,这些操作要么全部执行成功,要么全部不执行。使用事务的原因:保证数据的安全有效。事务的四个特...

Oracle编程基础

简单介绍一下oracle中if,else,case when,循环,异常处理等用法if,elsedeclareptypeint:=2; begin ifptype=1then dbms_out...

Oracle程序包

当项目越来越大的时候,数据库中的函数,存储过程等越来越多。为了方便管理,Oracle建议使用程序包的管理机制。实现业务模...

Oracle中MERGE INTO,for,start with,decode用法

1. MERGEINTO:MERGEINTOT_TD_BU_MODIFY_NOTICE_LSA USING( selectMODIFY_NOTICE_ID,REJECT_REASONfromT_TD_BU_MODIFY_NOT...

Oracle+命令

oracle常用命令SQLPLUS进入oracle撤销命令revoke 权限 form 用户名show user查询当前登录账户锁定账户命令Alter user 用户...

Oracle 11g数据库的安装+空间管理

如果你在圣诞节没有收到礼物,请不要伤心也不要难过,因为接下来还有元旦,春节,还有情人节,还有元宵节......慢慢的你就...

Oracle--常用命令、条件语句、循环语句、SQL函数

Oracle常用命令1、登录数据库默认账户 默认密码 拥有权限sys 123456 as sysdba 拥有数据库的最高权限system ...

Oracle数据库的基本操作

Oracle数据库Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域...

Oracle数据库的认识和基本使用

推荐一个Oracle数据库的一个学习网站:http://www.oraclejsq.com/article/010100110.html一、对Oracle数据库的认识1、数据...

Oracle操作

Oracle数据库操作1、创建数据库create database databasename2、删除数据库drop database dbname3、备份数据库完全备份exp ...

Oracle 安装和常用的命令

Oracle 安装如下:https://jingyan.baidu.com/article/f79b7cb32095f79144023eae.html默认账户Sys 123456 as sysdba 数据...

Oracle数据库的同义词与视图

同义词概念:同义词顾名思义,是数据库方案对象的一个别名。这里的数据库方案对象指表、视图、序列、存储过程、包等。创建...