广告
返回顶部
首页 > 资讯 > 数据库 >oracle cursor(静态)记录
  • 857
分享到

oracle cursor(静态)记录

2024-04-02 19:04:59 857人浏览 八月长安
摘要

游标定义:游标(Cursor)是处理数据的一种方法,为了查看或者处理结果集中的数据,游标提供了在结果集中一次一行或者多行前进或向后浏览数据的能力。可以把游标当作一个指针,利用游标可以返回它当前指向的行记录(

游标定义:
游标(Cursor)是处理数据的一种方法,为了查看或者处理结果集中的数据,游标提供了在结果集中一次一行或者多行前进或向后浏览数据的能力。可以把游标当作一个指针,利用游标可以返回它当前指向的行记录(只能返回一行)若要返回多行,则需要不断的滚动,把想要的数据全部查询一遍。游标可以指定结果中的任何位置,然后允许用户对指定位置的数据进行处理。
游标的优点:
1)允许程序对由查询语句select返回的行集合中的每一行执行相同或不同的操作
,而不是对整个行集合执行同一个操作。
2)提供对基于游标位置的表中的行进行删除和更新的能力。
游标的缺点:
在创建游标时,最需要考虑的事情是,“是否有办法避免使用游标?” 因为游标的效率较差,如果游标操作的数据超过1万行,那么就应该改写; 如果使用了游标,就要尽量避免在游标循环中再进行表连接的操作。
静态游标分为:
显式游标和隐式游标
显示游标部分:-->
1.游标的语法:
CURSOR cursor_name (parameter_name datatype) IS select...
2.显示游标的使用步骤:
1.声明游标 2.打开游标 3.读取游标 4.关闭游标
3.显示游标的四个属性:
1.Cursorname%found
2.Cursorname%notfound
3.Cursorname%isopen
4.Cursorname%rowcount
4.显示游标示例:
示例1:
declare
cursor c is select * from dj_djb where slbh like '201708%';
v_djb dj_djb%rowtype;
begin
open c;
loop
--exit when c%notfound;
if c%isopen then
dbms_output.put_line('游标已经打开!');
fetch c into v_djb;
exit when c%notfound;
dbms_output.put_line(v_djb.slbh);

dbms_output.enable(buffer_size=>null);
dbms_output.put_line(c%rowcount);
else
  dbms_output.put_line('游标未打开!');
  end if;
  end loop;

end;
示例2
使用: cursor for loop ......
declare
cursor c is select * from dj_djb where slbh like '201708%';
v_djb dj_djb%rowtype;
begin
for i in c loop
dbms_output.put_line(i.slbh);
dbms_output.put_line(c%rowcount);
end loop;
end;

使用 bulk collect into ....进行批量提取数据

declare
cursor c is select * from dj_djb where slbh like '201708%';
type v_djb_tmp is table of dj_djb%rowtype index by binary_integer;
v_djb v_djb_tmp;
begin
open c;
loop
fetch c bulk collect into v_djb limit 10;
for i in 1..v_djb.count loop
dbms_output.enable(buffer_size=>null);
dbms_output.put_line(v_djb(i).slbh||' 对应的行数:'||i);
end loop;
dbms_output.put_line(c%rowcount);
exit when c%notfound;
end loop;
close c;
end;
隐式游标部分-->
隐式游标则由则由系统自动定义,非显示定义游标的DML语句即被赋予隐式游标属性。其过程由oracle控制,完全自动化。隐式游标的名称是sql,不能对SQL游标显式地执行OPEN,FETCH,CLOSE语句。
隐式游标的属性:
类似于显示游标,隐式游标同样具有四种属性,只不过隐式游标以SQL%开头,而显示游标以Cursor_name%开头。通过SQL%总是只能访问前一个DML操作或单行SELECT操作的游标属性,用于判断DML执行的状态和结果,进而控制程序的流程。
SQL%ISOPEN :
游标是否打开。当执行select into ,insert update,delete时,Oracle会隐含地打开游标,且在该语句执行完毕或隐含地关闭游标,因为是隐式游标,故SQL%ISOPEN总是false
SQL%FOUND :
判断SQL语句是否成功执行。当有作用行时则成功执行为true,否则为false。SQL%NOTFOUND :
判断SQL语句是否成功执行。当有作用行时否其值为false,否则其值为true。
SQL%ROWCOUNT:
在执行任何DML语句之前,SQL%ROWCOUNT的值都是NULL。

                                                                                              by wolihaito  2018.03.26
您可能感兴趣的文档:

--结束END--

本文标题: oracle cursor(静态)记录

本文链接: https://www.lsjlt.com/news/37815.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • oracle cursor(静态)记录
    游标定义:游标(Cursor)是处理数据的一种方法,为了查看或者处理结果集中的数据,游标提供了在结果集中一次一行或者多行前进或向后浏览数据的能力。可以把游标当作一个指针,利用游标可以返回它当前指向的行记录(...
    99+
    2022-10-18
  • 在Vista系统下添加静态ARP记录
    在 Windows 中我们通常用如“ARP -S 192.168.0.1 00-00-00-XX-00-XX”命令添加静态 ARP 记录, 但今天我在我的 Windows Vista 上尝试用这个...
    99+
    2023-05-23
    记录 静态 添加 系统 ARP 命令 netsh 运行 以后
  • oracle静态监听
    oracle静态监听和动态监听  一、什么是注册? ...
    99+
    2022-10-18
  • dedecms 5.3/5.5全站伪静态含SEO重复记录优化
    1、服务器必须支持URL重写。 2、后台开启伪静态。 3、栏目设置使用动态。 4。添加文档时选择使用动态浏览。 5。需要修改php文件include/channelunit.func.php 查找 return $GLO...
    99+
    2022-06-12
    dedecms 伪静态
  • Oracle动态SQL和静态SQL比较
    Oracle动态SQL和静态SQL比较1.静态SQLSQL与动态SQL  Oracle编译PL/SQL程序块分为两个种:其一为前期联编(early binding),即SQL语句在程序编译期间就已经确定,大...
    99+
    2022-10-18
  • oracle 动态注册和静态注册
    动态注册:实例启动后,pmon每分钟自动将服务名注册到侦听器中,也可以手动注册alter system register;系统默认有一个listener;不需要listener.ora文件也可以启动侦听,实...
    99+
    2022-10-18
  • Oracle Procedure记录
    1、定义所谓存储过程(Procedure),就是一组用于完成特定数据库功能的SQL语句集,该SQL语句集经过编译后存储在数据库系统中。在使用时候,用户通过指定已经定义的存储过程名字并给出相应的存储过程参数来...
    99+
    2022-10-18
  • Android破解微信获取聊天记录和通讯录信息(静态方式)
    一、猜想数据存放路径 微信现在是老少皆宜,大街小巷都在使用,已经替代了传统的短信聊天方式了,只要涉及到聊天就肯定有隐私消息,那么本文就来讲解如何获取微信的聊天记录以及通讯录信息...
    99+
    2022-06-06
    静态 Android
  • ASP.NET MVC使用Log4Net记录异常日志并跳转到静态页
    本篇体验在ASP.NET MVC 4中使用Log4Net记录日志。 通过NuGet安装Log4Net。 需求是:当出错时导向到Error.html静态页面,Log4Net记录错误信...
    99+
    2022-11-13
  • oracle 操作记录
    删除所有表:select 'drop table '||table_name||';' from cat where ...
    99+
    2022-10-18
  • oracle动态注册和静态注册监听器
         oracle动态注册和静态注册的区别:动态监听不需要在listener.ora文件中记录关于数据的任何信息,只需要将监听器的配置信息写入到该文件。例如:&n...
    99+
    2022-10-18
  • Oracle监听的静态注册和动态注册
    静态注册:通过解析listene.ora文件 动态注册:由PMON进程动态注册至监听中 在没有listener.ora配置文件的情况下,如果启动监听,则监听为动态注册。用图形化netca创建...
    99+
    2022-10-18
  • Oracle静态监听和动态监听的方法
    这篇文章主要介绍“Oracle静态监听和动态监听的方法”,在日常操作中,相信很多人在Oracle静态监听和动态监听的方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Orac...
    99+
    2022-10-18
  • oracle常用SQL记录
    select name,lcount from sys.user$ 查看用户是否被锁 select username,account_status,lock_date from dba_users; 查看锁定账户登...
    99+
    2021-02-22
    oracle常用SQL记录
  • 关于oracle 11g 安装笔记记录
    安装ORACLE 11G 64位报错报错信息:准备从以下地址启动 Oracle Universal Installer /tmp/OraInstall2012-07-25_03-10-02PM. 请稍候.....
    99+
    2022-10-18
  • dedecms伪静态设置以及目录链接301跳转实现方法(伪静态)
    htaccess伪静态的规则 通过htaccess使用伪静态,则必须空间商支持Rewrite模块,该模块负责URL的重写。否则即便是设置好了,也无法使用,并且还有可能出现500错误。 下面是dedecms的伪静态设置文本...
    99+
    2022-06-12
    dedecms 伪静态
  • 【Oracle】常用命令记录
    一、Exp/Imp导入导出命令 imp user/pwssword@ip:1521/sid file=d:***.dmp full=y ignore=y exp user/pwssword@ip:1521/sid file=d:***.dm...
    99+
    2015-03-28
    【Oracle】常用命令记录
  • oracle删除重复记录
    1.1 查找表中多余的重复记录 --查询出所有有重复的数据select DETAIL_ID,COMMENT_BODY,count(1)from BBSCOMMENTgroup by DETAIL_...
    99+
    2022-10-18
  • thinkphp如何设置伪静态去除目录
    本篇内容主要讲解“thinkphp如何设置伪静态去除目录”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“thinkphp如何设置伪静态去除目录”吧!thinkphp设置伪静态去除目录的方法:1、在...
    99+
    2023-07-04
  • Oracle自定义函数记录
    函数主要是用来操作各种数据,并返回相应的操作结果。用户自定义函数是存储在数据库中的代码块,可以把值返回到调用程序。函数的语法:Create [or replace] function functi...
    99+
    2022-10-18
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作