lightdb新特性--相容oracle儲存過程的聯合陣列

Hanson69發表於2022-06-17

聯合陣列是一組鍵值對,每個鍵是一個唯一的索引,索引的資料型別可以是字串型別或整型。 索引以排序順序儲存,而不是建立順序

 

和資料庫表相似的是:

l   使用者可以在不知道其位置的情況下訪問它們。

而與資料庫表不同的是:

l   關聯陣列不需要磁碟空間。

l   不能用 DML 語句操作。


聯合陣列語法如下:


舉例:

DECLARE
  -- Associative array indexed by string:
  
  TYPE population IS TABLE OF NUMBER  -- Associative array type
    INDEX BY VARCHAR2(64);            --  indexed by string
  
  city_population  population;        -- Associative array variable
  i  VARCHAR2(64);                    -- Scalar variable
  
BEGIN
  -- Add elements (key-value pairs) to associative array:
 
  city_population('Smallville')  := 2000;
  city_population('Midland')     := 750000;
  city_population('Megalopolis') := 1000000;
 
  -- Change value associated with key 'Smallville':
 
  city_population('Smallville') := 2001;
 
  -- Print associative array:
 
  i := city_population.FIRST;  -- Get first element of array
 
  WHILE i IS NOT NULL LOOP
    DBMS_Output.PUT_LINE
      ('Population of ' || i || ' is ' || city_population(i));
    i := city_population.NEXT(i);  -- Get next element of array
  END LOOP;
END;
/


結果如下:

Population of Megalopolis is 1000000
Population of Midland is 750000
Population of Smallville is 2001

訪問陣列元素通過使用圓括號操作,比如訪問 city_population 陣列中下標為 'Smallville' 的元素語法為 city_population('Smallville')

聯合陣列可以使用以下的方法來訪問其中的元素。歸納如下:

Method Description

DELETE

Deletes elements from collection.

EXISTS

Returns  TRUE if and only if specified element of varray or nested table exists.

FIRST

Returns first index in collection.

LAST

Returns last index in collection.

COUNT

Returns number of elements in collection.

PRIOR

Returns index that precedes specified index.

NEXT

Returns index that succeeds specified index.


上面的使用方法如下:

array_name . method


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69982913/viewspace-2901312/,如需轉載,請註明出處,否則將追究法律責任。

相關文章