PL/SQL 數組的使用


一、固定數組

1、在模式(schema)級創建VARRAY類型

語法:

CREATE OR REPLACE TYPE varray_type_name IS VARRAY(n) OF <element_type>

其中,

  • varray_type_name是一個有效的屬性名稱;
  • nvarray中元素的數量(最大值);
  • element_type是數組元素的數據類型。

可以使用ALTER TYPE語句更改變量的最大大小。

實例:

CREATE OR REPLACE TYPE namesarray IS VARRAY(3) OF VARCHAR2(10); 

備注:在Oracle中,一個用戶就是一個Schema,表都是建立在Schema中的,也可以理解為每個用戶擁有不同的表。一個用戶想訪問另外一個用戶,也就是另外一個schema的表的時候,可以用 username.tablename的形式來訪問。

 

2、在PL/SQL塊中創建VARRAY類型

語法:

TYPE varray_type_name IS VARRAY(n) OF <element_type>

實例:

DECLARE 
   TYPE namesarray IS VARRAY(5) OF VARCHAR2(10); 
   TYPE gradesarray IS VARRAY(5) OF INTEGER; 
   names namesarray; 
   marks gradesarray; 
   total INTEGER; 
BEGIN 
   names := namesarray('Kavita', 'Pritam', 'Ayan', 'Rishav', 'Aziz'); 
   marks := gradesarray(98, 97, 78, 87, 92); 
   total := names.count; 
   dbms_output.put_line('總共有 '|| total || ' 名學生'); 
   FOR i IN 1 .. total LOOP 
      dbms_output.put_line('姓名: ' || names(i) || ' 成績: ' || marks(i)); 
   END LOOP; 
END;

結果:
總共有 5 名學生
姓名: Kavita 成績: 98
姓名: Pritam 成績: 97
姓名: Ayan 成績: 78
姓名: Rishav 成績: 87
姓名: Aziz 成績: 92

注意:

  • 在Oracle環境中,varrays的起始索引始終為1
  • 可以使用varray類型的構造方法初始化varray元素,該方法與varray具有相同的名稱;
  • varrays是一維數組
  • varray在聲明時自動為NULL,並且必須在引用元素之前初始化它。

二、可變數組

DECLARE 
  TYPE ORG_TABLE_TYPE IS TABLE OF VARCHAR2(25)
  INDEX BY BINARY_INTEGER;
  V_ORG_TABLE ORG_TABLE_TYPE;
BEGIN
  V_ORG_TABLE(1) := '1';
  V_ORG_TABLE(2) := '2';
  V_ORG_TABLE(3) := '3';
  V_ORG_TABLE(4) := '4';
  V_ORG_TABLE(5) := '5';
  FOR i IN V_ORG_TABLE.first .. V_ORG_TABLE.last LOOP
    dbms_output.put_line(V_ORG_TABLE(i));
  END LOOP;
END;

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM