PLSQL中使用二维存储结构---二维数组

代码如下:

 --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;

转载于:https://www.cnblogs.com/jenrry/p/7747768.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
建立运行环境-Excel Vba,可移植到VB环境(需修改一些代码) '仿制简单的SQL查询语句,用于对二维数组的查询 '参照SQL语句:Select * From array [Where conditions] [Distinct fields] [ResultWithTitle] ' '实现功能: ' 依条件设置查询数组,返回包含查询字段(或全部字段)的数组,可多条件组合。 ' 条件运算符包括:> = < >= <= <> , like(正则表达式) ' '附注: ' 使用此函数,需要在文件引用正则表达式脚本 Microsoft VBScript Regular Expressions x.x ' (根据不同的电脑配置和环境此处会有差异) '算法简要: ' 1、查询条件运算符:仅有 >, =, <, >=, <=, <> , like(正则表达式) ' 本函数仅有上述运算符。原因在于,更多的运算符编制逻辑过于复杂,又不太常用。 ' 为了尽可能多地容纳各种运算关系,添加了正则表达式匹配运算, ' 在某个单一条件,正则几乎可以容纳绝大部分的比对运算关系了。 ' 2、数字比较: ' 采用了将数字型字符串类型转换为数字之后再比较的方法,结果更为准确。 ' 3、其他算法和运算速度: ' 编制过程,试验过使用 正则+逻辑分支+表达式引用 的方法, ' 可以实现几乎等同于SQL查询语句的复杂功能,而且代码更简捷。 ' 但运算速度相差过于悬殊(大概几十到上百倍 - "一闪而过"和"一袋烟"的差距!),最后不得不放弃。 ' 所以现在的版本相当于一个简化了的select语句,但对于大多数查询情况而言够用了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值