在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ 數(shù)據(jù)庫/ PL/SQL數(shù)組
PL/SQL記錄
PL/SQL基本語法
PL/SQL集合
PL/SQL包
PL/SQL關(guān)系運(yùn)算符
PL/SQL比較運(yùn)算符
PL/SQL條件控制
PL/SQL字符串
PL/SQL算術(shù)運(yùn)算符
PL/SQL變量
PL/SQL IF-THEN-ELSIF語句
PL/SQL函數(shù)
PL/SQL異常
PL/SQL FOR循環(huán)語句
PL/SQL日期及時間
PL/SQL EXIT語句
PL/SQL DBMS輸出
PL/SQL過程
PL/SQL CONTINUE語句
PL/SQL數(shù)組
PL/SQL嵌套IF-THEN-ELSE語句
PL/SQL事務(wù)
PL/SQL CASE語句
PL/SQL IF-THEN語句
PL/SQL GOTO語句
PL/SQL運(yùn)算符優(yōu)先級
PL/SQL觸發(fā)器
PL/SQL運(yùn)算符
PL/SQL教程
PL/SQL WHILE循環(huán)語句
PL/SQL面向?qū)ο?/span>
PL/SQL循環(huán)
PL/SQL邏輯運(yùn)算符
PL/SQL IF-THEN-ELSE語句
PL/SQL數(shù)據(jù)類型
PL/SQL環(huán)境安裝設(shè)置
PL/SQL游標(biāo)
PL/SQL基本循環(huán)語句
PL/SQL搜索CASE語句
PL/SQL常量和文字
PL/SQL嵌套循環(huán)

PL/SQL數(shù)組

PL/SQL程序設(shè)計語言提供叫一種叫做VARRAY的數(shù)據(jù)結(jié)構(gòu),其可存儲相同類型元素的一個固定大小的連續(xù)集合。VARRAY用于存儲數(shù)據(jù)的有序集合,但它往往是更加有用認(rèn)為數(shù)組作為相同類型的變量的集合。

所有可變數(shù)組由連續(xù)的存儲位置。最低的地址對應(yīng)于第一元素和最高地址的最后一個元素。

Varrays in PL/SQL

數(shù)組是所有集合類型數(shù)據(jù)的一部分,并且它代表了可變大小的的陣列。我們將研究其他集合類型在后面的“PL/SQL集合”章節(jié)。

在一個VARRAY每個元素都有與其相關(guān)聯(lián)的索引。它還具有可以動態(tài)改變一個最大大小。

創(chuàng)建VARRAY類型

一個VARRAY類型是用CREATE TYPE語句創(chuàng)建。必須指定最大長度,并存儲在VARRAY元素的類型。

對于在架構(gòu)層面創(chuàng)造一個VRRAY類型的基本語法:

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

這里,

  • varray_type_name 就是一個有效的屬性名

  • n是VARRAY元素(最大值)的數(shù)目

  • element_type 就是所述數(shù)組的元素的數(shù)據(jù)類型。

VARRAY的最大長度可以使用ALTER TYPE語句來改變。

例如,

CREATE Or REPLACE TYPE namearray AS VARRAY(3) OF VARCHAR2(10);
/

Type created.

PL/SQL塊創(chuàng)建VRRAY類型的基本語法:

TYPE varray_type_name IS VARRAY(n) of <element_type>

示例,

TYPE namearray IS VARRAY(5) OF VARCHAR2(10);
Type grades IS VARRAY(5) OF INTEGER;

示例 1

下面的程序說明了使用可變數(shù)組:

DECLARE
   type namesarray IS VARRAY(5) OF VARCHAR2(10);
   type grades IS VARRAY(5) OF INTEGER;
   names namesarray;
   marks grades;
   total integer;
BEGIN
   names := namesarray('Kavita', 'Pritam', 'Ayan', 'Rishav', 'Aziz');
   marks:= grades(98, 97, 78, 87, 92);
   total := names.count;
   dbms_output.put_line('Total '|| total || ' Students');
   FOR i in 1 .. total LOOP
      dbms_output.put_line('Student: ' || names(i) || '
      Marks: ' || marks(i));
   END LOOP;
END;
/

當(dāng)上述代碼在SQL提示符執(zhí)行時,它產(chǎn)生了以下結(jié)果:

Student: Kavita  Marks: 98
Student: Pritam  Marks: 97
Student: Ayan  Marks: 78
Student: Rishav  Marks: 87
Student: Aziz  Marks: 92

PL/SQL procedure successfully completed.

請注意:

  • 在Oracle環(huán)境中,可變數(shù)組的起始索引始終為1

  • 可以初始化使用VARRAY類型,它具有相同的名稱變長數(shù)組的構(gòu)造方法VARRAY元素

  • 可變數(shù)組是一維陣列

  • 一個VARRAY當(dāng)它被聲明自動為NULL值,必須初始化之前,它的元素可以被引用

示例 2

VARRAY的元素也可以是任何%TYPE任何數(shù)據(jù)庫表或%ROWTYPE數(shù)據(jù)庫表的字段。下面的例子說明了這個概念:

我們將使用存儲在數(shù)據(jù)庫中的CUSTOMERS表:

Select * from customers;

+----+----------+-----+-----------+----------+
| ID | NAME     | AGE | ADDRESS   | SALARY   |
+----+----------+-----+-----------+----------+
|  1 | Ramesh   |  32 | Ahmedabad |  2000.00 |
|  2 | Khilan   |  25 | Delhi     |  1500.00 |
|  3 | kaushik  |  23 | Kota      |  2000.00 |
|  4 | Chaitali |  25 | Mumbai    |  6500.00 |
|  5 | Hardik   |  27 | Bhopal    |  8500.00 |
|  6 | Komal    |  22 | MP        |  4500.00 |
+----+----------+-----+-----------+----------+

以下是使用游標(biāo)示例:

DECLARE
   CURSOR c_customers is
   SELECT  name FROM customers;
   type c_list is varray (6) of customers.name%type;
   name_list c_list := c_list();
   counter integer :=0;
BEGIN
   上一篇:PL/SQL基本循環(huán)語句下一篇:PL/SQL游標(biāo)