一、什么是记录Record和PL/SQL表?记录Record:由单行多列的标量类型构成的临时记录对象类型。类似于多维数组。
PL/SQL表:由多行单列的索引列和可用列构成的临时索引表对象类型。类似于一维数组和键值对。两者都属于用户自定义数据类型。二、Record + PL/SQL表 用途是什么?
Record + PL/SQL表可以进行数据的多行多列存储。这样我们就可使用Record + PL/SQL表在需要时封装一个临时的表对象,进行传递和操作。通过Record自定义表结构,封装一条记录。PL/SQL表声明 可用列 类型为Record类型(将可用列指向Record类型变量),每个索引对应一个Record类型变量。三、使用Record + PL/SQL表进行数据的多行多列存储
1、声明Record类型和PL/SQL表,其中PL/SQL表的索引列为主键约束和唯一约束列或自增Integer。可用列为Record类型或%RowType类型。
2、填充PL/SQL表可用列(Record类型):通过索引指向Record,使用Record访问记录成员。语法:
PL/SQL表名(索引列值).记录成员 := 记录成员类型值;或PL/SQL表名(索引列值) := Record类型变量;
--注意其PL/SQL表中声明的可用列要和这里赋值的Record类型变量结构一样
3、访问PL/SQL表
4、属性方法:
count --返回pl/sql表的总行数;
delete --删除pl/sql表的所有内容;
delete(行数) --删除pl/sql表的指定的行;
delete(开始行,结束行) --删除pl/sql表的多行;
first --返回表的第一个INDEX;
next(行数) --这个行数的下一条的INDEX;
last --返回表的最后一个INDEX;
例:
CREATE OR REPLACE PROCEDURE PRO_EBFX_MAIN(SQL_IN VARCHAR2) IS
----CREATE BY TANGYUN------------------------------
----2010-10-09------------------------------------
-----二八分界线------------------------------------
TYPE EBFX_REC IS RECORD(
XD VARCHAR2(100),
YD NUMBER);
TYPE EBFX_TAB IS TABLE OF EBFX_REC;
DATA_TAB EBFX_TAB; ---用于存放传进来的参数数组
---返回记录表
---XH:序号、PYD:Y值百分比、SPXD:X值累计百分比
TYPE EBFX_REC6 IS RECORD(
XH NUMBER,
XD VARCHAR2(100),
YD NUMBER,
PYD NUMBER,
SPXD NUMBER,
SPYD NUMBER);
TYPE PLSQL_TAB6 IS TABLE OF EBFX_REC6 INDEX BY BINARY_INTEGER;
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/24930246/viewspace-1041615/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/24930246/viewspace-1041615/