oracle遍历游标

1,while循环

declare
  v_tname varchar2(20);
  cursor c_tname is select a.TABLE_NAME from user_tables a where a.TABLESPACE_NAME = ‘VTMDATA‘;
begin
  open c_tname;
  fetch c_tname into v_tname;
  while c_tname%found loop
     dbms_output.put_line(v_tname);
     fetch c_tname into v_tname;  --此处必须fetch否则就一直取第一个造成死循环
  end loop;
  close c_tname;                  --要手动关闭游标否则不能再次使用
end;

2,for循环

declare
  cursor c_tname is select a.TABLE_NAME from user_tables a where a.TABLESPACE_NAME = ‘VTMDATA‘;
begin
  for tname in c_tname
  loop
      dbms_output.put_line(tname.table_name);  --通过"." 操作符去对应的列
  end loop;                                    --循环完成之后自动关闭游标,无需手动关闭
exception
  when others then
    dbms_output.put_line(sqlcode);
    dbms_output.put_line(sqlerrm);
end;
时间: 2024-11-01 21:57:17

oracle遍历游标的相关文章

ORACLE 11G在存储过程里面遍历游标, 调用job任务定时执行

ORACLE存储过程里游标遍历.调用job定时执行 1,第一种使用For 循环 for循环是比较简单实用的方法. 首先,它会自动open和close游标.解决了你忘记打开或关闭游标的烦恼. 其次,自动声明一个记录类型及定义该类型的变量,并自动fetch数据到这个变量. 注意C_ROW 这个变量无需要在循环外进行声明,无需为其指定数据类型.它是一个记录类型,具体的结构是由游标决定的. 这个变量的作用域仅仅是在循环体内. 最后,与该游标关联的所有记录都已经被取回后,循环无条件结束,不必判定游标的%N

ORACLE 11G在存储过程里面遍历游标, 调用job任务定时运行

ORACLE存储过程里游标遍历.调用job定时运行 1,第一种使用For 循环 for循环是比較简单有用的方法. 首先.它会自己主动open和close游标.攻克了你忘记打开或关闭游标的烦恼. 其次,自己主动声明一个记录类型及定义该类型的变量,并自己主动fetch数据到这个变量. 注意C_ROW 这个变量无需要在循环外进行声明,无需为其指定数据类型.它是一个记录类型,详细的结构是由游标决定的. 这个变量的作用域不过在循环体内. 最后,与该游标关联的全部记录都已经被取回后.循环无条件结束,不必判定

Oracle基础 游标

一.游标 游标用来处理从数据库中检索的多行记录(使用SELECT语句).利用游标,程序可以逐个地处理和遍历一次检索返回的整个记录集. 为了处理SQL语句,Oracle将在内存中分配一个区域,这就是上下文区.这个区包含了已经处理完的行数.指向被分析语句的指针,整个区是查询语句返回的数据行集.游标就是指向上下文区句柄或指针. 二.游标的分类: 1.静态游标:静态游标是在编译时知道其SELECT语句的游标.静态游标又分为两种类型,隐式游标和显示游标. 2.动态游标:用户为游标使用的查询直到运行的时候才

Oracle 基础 游标

一:游标的基本原理 游标用来处理从数据库中检索的多行记录(使用SELECT语句).利用游标,程序可以逐个地处理和遍历一次检索返回的整个记录集. 为了处理SQL语句,Oracle将在内存中分配一个区域,这就是上下文区.这个区包含了已经处理完的行数.指向被分析语句的指针,整个区是查询语句返回的数据行集.游标就是指向上下文区句柄或指针. 二:游标的分类 1.静态游标:在编译时知道其SELECT语句的游标. (1).显示游标 (2).隐式游标 2.动态游标:用户为游标使用的查询直到运行的时候才能确定,必

Oracle的游标介绍

Oracle的游标介绍 Oracle中的PL/SQL的游标是指把数据库中查询出来的数据以临时表的形式存放在内存中,游标可以对存储在内存中的数据进行操作,返回一条或者一组数据,或者一条数据也不返回.PL/SQL中的记录和表类型虽然也能用来存储数据,但对一组存储在内存中的数据进行操作,还是不太方便,游标恰好是这方面的工具. PL/SQL包含隐含游标和显示游标,其中隐含游标用于处理SELECT INTO和DML语句,而显示游标则专门用于处理SELECT语句返回的多行数据,游标的基本操作有: - 声明游

Oracle使用游标为所有用户表添加主键语句

应用场合:数据表新增自增一主键能加快数据表的访问速度,而且是整形的索引速度最快.本程序适合在导入Oracle数据库时删除不存在主键的情况下运行. 代码说明:所有的表主键字段名都设置为ID,如果已存在ID字段,则判断是否是整形,如果不是就重命名字段为[表名ID],然后新增ID,如果不存在则直接添加自增一ID的主键 操作说明:打开PQSQL连接数据库后直接执行下面的详细脚本代码运行即可,脚本有风险(会删除原来的索引跟主键约束),请不要轻易在正式运行的数据库上直接执行 --Oracle使用游标为所有用

Oracle使用游标删除所有用户数据表中的所有记录脚本

应用场景:因为数据库中的数据涉及机密信息,希望一次性能删除掉所有数据,只保留数据表结构,供新项目开发程序用 测试结果:经查询已删除所有数据 存在问题:数据表如果存在外键的话下面脚本可能执行不成功,请自行删除或者过滤掉该表,见下图 操作办法:直接将下面的脚本内容复制到PQSQL中执行即可 --Oracle使用游标删除所有用户数据表中的所有记录脚本 declare mystring NVARCHAR2(1000):=''; --定义要输出的字符串变量 cursor mycursor is --定义游

oracle中游标与动态绑定变量

一.      游标: 用数据库语言来描述:游标是映射在结果集中一行数据上的位置实体,有了游标用户就可以访问结果集中的任意一行数据了,将游标放置到某行后,即可对该行数据进行操作,例如提取当前行的数据等等. 在Oracle9i之前,使用FETCH语句每次只能提取一行数据:从Oracle9i开始,通过使用FETCH…BULK COLLECT INTO语句,每次可以提取多行数据.语法如下: (1) FETCH cursor_name INTO variable1,variable2,…: 此方法必须要

oracle存储过程+游标处理select数据

create or replace PROCEDURE UPDATE_RECORDCODE is cursor location_data is select * from location where remark in('952701','9527008','952705');--申明游标 serviceCode NUMBER:=1; BEGIN for l in location_data loop --遍历游标 BEGIN --业务处理 UPDATE SERIAL_CODE SET CU