arrays - oracle pl/sql 数组

标签 arrays oracle plsql

我有一些我想存储在数组中的数字。我将如何在 oracle pl/sql 中声明数组并为其赋值?

最佳答案

PL/SQL 中有数组类型,但我们可以使用表自己创建它们

declare 
  type NumberArray is table of number index by binary_integer;
  myArray NumberArray;
begin

   myArray(0) := 1
   myArray(1) := 2 
   --or use a for loop to fill
end;

The explanation article

编辑 :

或者正如 Adam Musch 所说,如果我们知道我们正在操作的数据的数据大小,我们可以使用 VARRAYs长度固定,这是 oracle环境,所以下标从 1 开始,

替代方法是使用 VARRAY ,其中数组下标从1开始,VARRAY的长度是固定的。

语义:
declare  type VarrayType is varray(size) of ElementType;

例子 :
    declare
      type NumberVarray is varray(100) of NUMERIC(10);
      myArray NumberVarray;
    BEGIN
      myArray := NumberVarray(1,10,100,1000,10000);

      myArray(1) = 2;

      for i in myArray.first..myArray.last
      loop
        dbms_output.put_line('myArray(' || i || '): ' || myArray(i));
      end loop;  
    end;
END;

输出 :
myArray(1) : 2
myArray(2) : 10
myArray(3) : 100
myArray(4) : 1000
myArray(5) : 10000

关于arrays - oracle pl/sql 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3545379/

相关文章:

c++ - 输出 4 组 7 个上升有序且唯一的随机数

oracle - 我可以用来防止行被插入到 Oracle 表中的侵入性最小的锁定机制是什么?

oracle - 在具有预先存在的表权限的用户之间共享 Oracle View

sql - 在 PLSQL 中连接集合

oracle - 包的初始化部分

javascript - 如何捕获标识主轮播中所有促销事件的列表变量,然后添加索引

java - 如何在二维数组中查找数字并排除一些?

java - 真正兼容 JDBC4 的 Oracle 驱动程序

Python ETL - 使用 cx_Oracle 批量或迭代地将大型数据集加载到 Oracle 数据库中

C - 初始化后二维数组打印崩溃