Oracle 如何在plsql中指定数组变量

Oracle 如何在plsql中指定数组变量,oracle,plsql,Oracle,Plsql,任何人都可以帮助我,如何将select查询的结果分配给数组变量,因为结果可以是一个值数组。有几种不同的方法可以将数据获取到数组中。第一个是一个简单的循环,如下所示: DECLARE TYPE NUMBER_ARRAY IS VARRAY(100) OF NUMBER; arrNums NUMBER_ARRAY; i NUMBER := 1; BEGIN arrNums := NUMBER_ARRAY(); FOR aRow IN (SELECT NUMBER_FIELD

任何人都可以帮助我,如何将select查询的结果分配给数组变量,因为结果可以是一个值数组。

有几种不同的方法可以将数据获取到数组中。第一个是一个简单的循环,如下所示:

DECLARE
  TYPE NUMBER_ARRAY IS VARRAY(100) OF NUMBER;

  arrNums  NUMBER_ARRAY;
  i NUMBER := 1;
BEGIN
  arrNums := NUMBER_ARRAY();

  FOR aRow IN (SELECT NUMBER_FIELD
                 FROM A_TABLE
                 WHERE ROWNUM <= 100)
  LOOP
    arrNums.EXTEND;
    arrNums(i) := aRow.SEQUENCE_NO;
    i := i + 1;
  END LOOP;
end;
根据@Rene的建议,另一种方法是使用批量收集,如下所示:

DECLARE
  TYPE NUMBER_ARRAY IS VARRAY(100) OF NUMBER;

  arrNums  NUMBER_ARRAY;
BEGIN
  arrNums := NUMBER_ARRAY();
  arrNums.EXTEND(100);

  SELECT NUMBER_FIELD
    BULK COLLECT INTO arrNums
    FROM A_TABLE
    WHERE ROWNUM <= 100;
end;

分享和享受。

您要寻找的术语是:Oracle批量收集。搜索互联网,你会发现很多例子。