Oracle 二维数组

今天在开发过程中,需要为数据库增添数据,为了让数据分散,且测试的时候更加全面真实,我们通常会考虑各种情况,单一的数据是不能满足需求的,将可能出现的情况全部记录在二维数组中,再通过在插入数据的时候,取数组中的值即可。

这里的二维数组其实也是通过自己定义得来的,是基于varray的一种数组组合。

首先定义一个数组,用来记录一种情况。

type NumArr is varray(5) of number;

通过,NumArr我们可以记录若干组数组,然后再把这若干组数组全添加到另一个数组,类型为NumArr即可。

type qArr is varray(5) of NumArr;

如下所示

declare
   type numArray is varray(4) of number;
   type numArray1 is varray(4) of numArray;
   n1 numArray;
   n2 numArray;
   n3 numArray;
   n4 numArray; 
   m1 numArray1;
begin
   n1 := numArray(1,2,3,4); 
   n2 := numArray(5,6,7,8);
   n3 := numArray(9,10,11,12);
   n4 := numArray(13,14,15,16); 
   m1 := numArray1(n1,n2,n3,n4);
   dbms_output.put_line(m1(2)(2));
end;

输出为:6

可能最近接触的python的元组十分方便,在定义的时候不会限制于某一种数据类型,但是在Oracle中尚未找到相关方法可以让一个数组中包含多个数据类型,十分遗憾。大家如果有需求,还是多写几个二维数组,然后拼在一起用吧。

思路:

1.

所有情况
ABCDE
0nullnull00
1nullnull00
1sysdatenull00
1sysdatesysdate00
1sysdatesysdate10
1sysdatesysdate11

2. 拆分

number类型
ADE
000
100
100
100
11

0

11

1

日期类型
BC
nullnull
nullnull
sysdatenull
sysdatesysdate
sysdatesysdate
sysdatesysdate

 4. 最后取相同行号的数据就可以了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值