ITPub博客

首页 > 数据库 > Oracle > 记录Record、PL/SQL表和二维数组

记录Record、PL/SQL表和二维数组

Oracle 作者:达芬奇的梦 时间:2017-05-27 10:49:26 0 删除 编辑

一、什么是记录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;

<span lang="EN-US" style="FONT-SI

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/31444259/viewspace-2139970/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: pl/sql record 详解
请登录后发表评论 登录
全部评论

注册时间:2017-03-15

  • 博文量
    172
  • 访问量
    296703