代码如下:

 --PLSQL中没有数组的概念 用TYPE 和Table of Record来代替多维数组
--create by jenrry 20171028
-- 1.0 建立存放列的测试表
create table cux.cux_test_jenrry_1028
(
line_1 varchar2(240),
line_2 varchar2(240),
line_3 varchar2(240),
line_4 varchar2(240),
line_5 varchar2(240),
line_6 varchar2(240),
line_7 varchar2(240),
line_8 varchar2(240),
line_9 varchar2(240),
line_10 varchar2(240),
line_11 varchar2(240),
line_12 varchar2(240),
line_13 varchar2(240),
line_14 varchar2(240),
line_15 varchar2(240)
)
tablespace APPS_TS_TX_DATA
  pctfree 10
  initrans 1
  maxtrans 255
  storage
  (
    initial 128
    next 128
    minextents 1
    maxextents unlimited
    pctincrease 0
  );
create synonym apps.cux_test_jenrry_1028 for cux.cux_test_jenrry_1028;

--2.0 使用二维数组的一个例子
DECLARE
  TYPE test_type IS RECORD(
    line_1  cux_test_jenrry_1028.line_1%TYPE,
    line_2  cux_test_jenrry_1028.line_2%TYPE,
    line_3  cux_test_jenrry_1028.line_3%TYPE,
    line_4  cux_test_jenrry_1028.line_4%TYPE,
    line_5  cux_test_jenrry_1028.line_5%TYPE,
    line_6  cux_test_jenrry_1028.line_6%TYPE,
    line_7  cux_test_jenrry_1028.line_7%TYPE,
    line_8  cux_test_jenrry_1028.line_8%TYPE,
    line_9  cux_test_jenrry_1028.line_9%TYPE,
    line_10 cux_test_jenrry_1028.line_10%TYPE,
    line_11 cux_test_jenrry_1028.line_11%TYPE,
    line_12 cux_test_jenrry_1028.line_12%TYPE,
    line_13 cux_test_jenrry_1028.line_13%TYPE,
    line_14 cux_test_jenrry_1028.line_14%TYPE,
    line_15 cux_test_jenrry_1028.line_15%TYPE); --定义test记录类型 
  TYPE test_type_array IS TABLE OF test_type INDEX BY BINARY_INTEGER; --定义存放test记录的数组类型 
  test_rec       test_type; --声明变量,类型:test记录类型
  test_rec_array test_type_array; --声明变量,类型:存放test记录的数组类型

BEGIN
  --数组赋值
  test_rec.line_1 := '金额/列名';
  test_rec.line_2 := '30';
  test_rec_array(1) := test_rec;

test_rec.line_1 := '23';
  test_rec.line_3 := '11';
  test_rec_array(2) := test_rec;

--循环输出数组元素
  FOR i IN 1 .. test_rec_array.count LOOP
    DBMS_OUTPUT.PUT_LINE('i=' || i || ',line_1=' || test_rec_array(i)
                         .line_1 || ',line_2=' || test_rec_array(i).line_2);
  END LOOP;
END;

PLSQL中使用二维存储结构---二维数组的更多相关文章

  1. PostgreSQL的存储系统二:REDOLOG文件存储结构二

    REDOLOG文件里的用户数据和数据文件里的用户数据存储结构相同 几个月前同事给台湾一家公司培训<pg9 ad admin>时,有个学员提及WAL里记录的内容为Query时的SQL语句(比 ...

  2. sql server 索引阐述系列二 索引存储结构

    一.概述. "流光容易把人抛,红了樱桃,绿了芭蕉“ 转眼又年中了,感叹生命的有限,知识的无限.在后续讨论索引之前,先来了解下索引和表数据的内部结构,这一节将介绍页的存储,页分配单元类型,区的 ...

  3. Java中Map<Key, Value>存储结构根据值排序(sort by values)

    需求:Map<key, value>中可以根据key, value 进行排序,由于 key 都是唯一的,可以很方便的进行比较操作,但是每个key 对应的value不是唯一的,有可能出现多个 ...

  4. Oracle 存储结构二

    创建和管理表空间 创建表空间 典型语句: CREATE SMALLFILE TABLESPACE "JWTS" DATAFILE '/u01/app/oracle/oradata/ ...

  5. Atitit.数据库表的物理存储结构原理与架构设计与实践

    Atitit.数据库表的物理存储结构原理与架构设计与实践 1. Oracle和DB2数据库的存储模型如图: 1 1.1. 2. 表数据在块中的存储以及RowId信息3 2. 数据表的物理存储结构 自然 ...

  6. Java中关于泛型集合类存储的总结

    集合类存储在任何编程语言中都是很重要的内容,只因有这样的存储数据结构才让我们可以在内存中轻易的操作数据,那么在Java中这些存储类集合结构都有哪些?内部实现是怎么样?有什么用途呢?下面分享一些我的总结 ...

  7. Redis之(二)数据类型及存储结构

    Redis支持五中数据类型:String(字符串),Hash(哈希),List(列表),Set(集合)及zset(sortedset:有序集合). Redis定义了丰富的原语命令,可以直接与Redis ...

  8. 二叉树的二叉链表存储结构及C++实现

    前言:存储二叉树的关键是如何表示结点之间的逻辑关系,也就是双亲和孩子之间的关系.在具体应用中,可能要求从任一结点能直接访问到它的孩子. 一.二叉链表 二叉树一般多采用二叉链表(binary linke ...

  9. Java读取excel指定sheet中的各行数据,存入二维数组,包括首行,并打印

    1. 读取 //读取excel指定sheet中的各行数据,存入二维数组,包括首行 public static String[][] getSheetData(XSSFSheet sheet) thro ...

随机推荐

  1. 【数组】Find Minimum in Rotated Sorted Array

    题目: Suppose a sorted array is rotated at some pivot unknown to you beforehand. (i.e., 0 1 2 4 5 6 7  ...

  2. android activity和fragment的生命周期图

    Activity的生命周期: Fragment的生命周期:

  3. Java多态的一些陷阱

    Java多态是如何实现的? Java的多态和C++一样,是通过延时绑定(late binding)或者说运行时绑定(runtime binding)来实现的.当调用某一个对象引用的方法时,因为编译器并 ...

  4. DataContractSerializer数据不一致下序列化

       一.数据类型的等效性 例如下面定义的两个类成员名称.定义顺序都不一样,但是在DataContract.DataMember的Name属性作用下,两个类的实例对象序列化后的xml是一样的,因此Or ...

  5. linux中echo命令详解

    linux的echo命令, 在shell编程中极为常用, 在终端下打印变量value的时候也是常常用到的, 因此有必要了解下echo的用法 echo命令的功能是在显示器上显示一段文字,一般起到一个提示 ...

  6. jquery序列化from表单使用ajax提交返回json数据(使用struts2注解result type = json)

    1.action类引入struts2的"json-default"拦截器栈 @ParentPackage("json-default") //示例 @Paren ...

  7. Unity主线程和子线程跳转调用(2)

    在上一篇介绍了多线程和Unity交互方式,但是由于我的项目是一个unity编辑器插件项目,很显然上一篇的代码需要加以修改,在编辑器下实现Loom. 1,Editor下的没有Update这个生命周期函数 ...

  8. ffmpeg按比例缩放--"width / height not divisible by 2" 解决方法

    最近在处理视频的时候,有这么一个需求 如果视频的分辨率宽度大于960的话,就把宽度设为960,而高度按其比例进行缩放 如果视频的分辨率高度大于540的话,就把高度设为540,而宽度按其比例进行缩放 之 ...

  9. zoj Continuous Login

    Continuous Login Time Limit: 2 Seconds      Memory Limit: 131072 KB      Special Judge Pierre is rec ...

  10. 【 js 模块加载 】【源码学习】深入学习模块化加载(node.js 模块源码)

    文章提纲: 第一部分:介绍模块规范及之间区别 第二部分:以 node.js 实现模块化规范 源码,深入学习. 一.模块规范 说到模块化加载,就不得先说一说模块规范.模块规范是用来约束每个模块,让其必须 ...