oracle存储过程的游标是什么

在oracle中,游标是SQL的一个内存工作区,由系统或用户以变量的形式定义,用于临时存储从数据库中提取的数据块;数据从数据库中传送到游标变量中后,应用程序再从游标变量中分解出需要的数据,并进行处理。

oracle存储过程的游标是什么

本教程操作环境:Windows10系统、Oracle 11g版、Dell G3电脑。

oracle存储过程的游标是什么

1.游标的使用。看到的一段解释很好的概念,如下:

    游标是SQL的一个内存工作区,由系统或用户以变量的形式定义。游标的作用就是用于临时存储从数据库中提取的数据块。在某些情况下,需要把数据从存放在磁盘的表中调到计算机内存中进行处理,最后将处理结果显示出来或最终写回数据库。这样数据处理的速度才会提高,否则频繁的磁盘数据交换会降低效率。 

游标有两种类型:显式游标和隐式游标。在前述程序中用到的SELECT…INTO…查询语句,一次只能从数据库中提取一行数据,对于这种形式的查询和DML操作,系统都会使用一个隐式游标。但是如果要提取多行数据,就要由程序员定义一个显式游标,并通过与游标有关的语句进行处理。显式游标对应一个返回结果为多行多列的SELECT语句。 

游标一旦打开,数据就从数据库中传送到游标变量中,然后应用程序再从游标变量中分解出需要的数据,并进行处理。在我们进行insert、update、delete和select   value into  variable 的操作中,使用的是隐式游标。

隐式游标的属性 返回值类型意义 : 

SQL%ROWCOUNT    整型  代表DML语句成功执行的数据行数   

SQL%FOUND   布尔型 值为TRUE代表插入、删除、更新或单行查询操作成功   

SQL%NOTFOUND    布尔型 与SQL%FOUND属性返回值相反   

SQL%ISOPEN  布尔型 DML执行过程中为真,结束后为假  

2.隐式游标:

create or replace procedure prc_example (epo in number) asBEGIN          UPDATE emp SET sal=sal+100 WHERE empno=epo;            IF SQL%FOUND THEN            DBMS_OUTPUT.PUT_LINE('成功修改雇员工资!');           COMMIT;            ELSE          DBMS_OUTPUT.PUT_LINE('修改雇员工资失败!');            END IF;            END; declaree_number number;begine_number:=7788;prc_example(e_number); end;

登录后复制

3.显示游标:

使用游标查询所有编号为10 的员工名

create or replace procedure prc_example isbegin    declare    cursor emp_sor  is select ename,sal from emp where deptno=10;      cname emp.ename%type;         csal emp.sal%type; begin   open emp_sor;          loop           fetch emp_sor into cname,csal;  --取游标的值给变量。                dbms_output.put_line('ename:'||cname);           exit when emp_sor%notfound;          end loop;           close emp_sor;      end;end;

登录后复制

推荐教程:《Oracle视频教程》

以上就是oracle存储过程的游标是什么的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2071192.html

(0)
上一篇 2025年2月24日 07:50:52
下一篇 2025年2月22日 06:34:21

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • oracle怎么查询重复的数据

    在oracle中,可以利用count()函数配合select查询语句来查询重复的数据,语法为“select userCode from user group by userCode having count(userCode)>1”。…

    2025年2月24日
    200
  • oracle怎么查询用户的表信息

    oracle查询用户表信息的方法:1、利用“SELECT count(*) FROM user_tables”查询当前用户下的表数量;2、利用“SELECT * FROM user_tables;”查询当前用户下的表。 本教程操作环境:Wi…

    2025年2月24日
    200
  • oracle怎么增加表空间大小

    方法:1、利用“alter database datafile 表空间位置 resize 大小”增加表空间大小;2、用“alter tablespace 表空间名 add datafile 数据文件地址 size 数据文件”增加表空间大小。…

    2025年2月24日
    200
  • oracle怎么查询空字段

    在oracle中,可以利用select查询语句配合“is”和“NULL”关键字来查询空字段,NULL关键字用于表示空字段,语法为“select * from 表名 where 字段名 is NULL”。 本教程操作环境:Windows10系…

    2025年2月24日 数据库
    200
  • oracle怎么删除用户对象

    在oracle中,可以利用DROP语句删除指定的用户及其所有对象,该语句用于撤销索引、表和数据库操作,当与CASCADE配合使用是就可以删除用户对象,语法为“DROP USER 用户名 CASCADE”。 本教程操作环境:Windows10…

    2025年2月24日
    200
  • oracle怎么查询归档状态

    oracle查询归档状态的方法:1、利用“select name,log_mode from v$database;”语句查看数据库现在归档状态;2、以“sysdba”登录,利用“archive log list”语句查看归档的状态。 本教…

    2025年2月24日
    200
  • oracle怎么查询月份

    在oracle中,可以利用“to_char()”函数和“mm”关键字来查询月份,“to_char()”函数是字符串转换函数,语法为“where to_number(to_char(表中日期字段,’mm’))=要查找的…

    2025年2月24日
    200
  • oracle怎么修改注释

    oracle修改注释的方法:1、利用“comment on table 表名 is ‘注释内容’”语句修改表注释;2、利用“comment on column 表名.字段名 is ‘注释内容’…

    2025年2月24日
    200
  • oracle中decode的用法是什么

    在oracle中,decode()函数用于将输入的数值与函数中的参数列表相比较,根据输入值返回一个对应值,语法为“decode(条件,值1,返回值1,值2,返回值2,…值n,返回值n,缺省值)”。 本教程操作环境:Windows10系统、O…

    2025年2月24日
    200
  • oracle怎么查询不包含指定字符

    方法:1、利用“select * from 表名  where order_no not like 字符”语句查询;2、利用“select * from 表名 where not regexp_like(order_no,字符)”语句查询。…

    2025年2月24日
    200

发表回复

登录后才能评论