不使用游标,循环表记录
来源:互联网 发布:廖雪峰javascript下载 编辑:程序博客网 时间:2024/04/28 22:58
使用记录类型变量只能保存一行数据,这限制了SELECT语句的返回行数,如果SELECT语句返回多行就会错。Oracle提供了另外一种自定义类型,也就是表类型,它是对记录类型的扩展,允许处理多行数据,类似于表。
创建表类型的语法如下:
TYPE table_name IS TABLE OF data_type [ NOT NULL ]
INDEX BY BINARY_INTEGER ;
语法说明如下:
--table_name 创建的表类型名称。
--IS TABLE 表示创建的是表类型。
创建表类型的语法如下:
TYPE table_name IS TABLE OF data_type [ NOT NULL ]
INDEX BY BINARY_INTEGER ;
语法说明如下:
--table_name 创建的表类型名称。
--IS TABLE 表示创建的是表类型。
--data_type 可以是任何合法的PL/SQL数据类型,例如varchar2。
--INDEX BY BINARY_INTEGER 指定系统创建一个主键索引,用于引用表类型变量中的特定行。
例子1:
通过变量循环赋值表类型,再循环输出
declaretype my_table is table of testtable%rowtypeindex by binary_integer;new_table my_table;i int;j int;begin i := 1; j := 5; for t in i..j loop new_table(t).id := t; new_table(t).name := t; end loop; for t in i..j loop Dbms_Output.put_line(new_table(t).id||new_table(t).name); end loop;end;示例2:
结合表,实现循环表记录
declaretype my_table is table of testtable%rowtypeindex by binary_integer;new_table my_table;i int;j int;rn int;begin i := 1; select count(*) into j from testtable; for t in i..j loop select id,name into new_table(t).id,new_table(t).name from(select t.*,rownum rn from(select * from testtable) t where rownum <t+1) where rn >= t; end loop; for t in i..j loop Dbms_Output.put_line(new_table(t).id||new_table(t).name); end loop;end;
1 0
- 不使用游标,循环表记录
- 循环删除表记录
- Hibernate 删除副表记录但不删除主表记录解决方法
- 不使用游标循环读取记录集的方法
- T_SQL利用游标遍历表记录,更新每条记录ID值
- 详解如何使用SQL中文分词组件查询表记录
- 随机取表记录
- oracle表记录恢复
- mysql复制表记录
- 表记录的检索
- 合并表记录
- 合并表记录
- 合并表记录
- 合并表记录
- 合并表记录
- 合并表记录
- 合并表记录
- 合并表记录
- Linux内核源码阅读以及工具
- SQL语句面试题(IN、NOT IN、COUNT、GROUP BY)
- javascript的闭包深入理解 (很经典,经典!!!)
- 关于COM类工厂80070005和8000401a错误分析及解决办法
- 即使没有读者,也要写自己的博客
- 不使用游标,循环表记录
- 求输入的两个数的最大公约数的java小程序
- java boolean类型
- Isomap资料
- cocos2d-x初步
- 【ORACLE备份与恢复】用户管理的:基于时间的数据库不完全恢复
- Thread,Looper,Handler,Message,MessageQueue之间的关系
- maven中依赖注入的排斥
- 局域网内双升游戏的设计(二)--系统框架