一、什么是记录
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;
[@more@]
例:
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/,如需转载,请注明出处,否则将追究法律责任。
广播电视节目制作经营许可证(京) 字第1234号 中国互联网协会会员