pl/sql中的表类似于c语言中的数组。
1. 定义表类型的语法如下:
TYPE tabletype IS TABLE OF type INDEX BY BINARY_INTEGER;
type是预定义的标量的类型,或者是通过%type指向标量的类型的引用。一个简单的例子:
TYPE t_charTable IS TABLE OF VARCHAR2(10) INDEX BY BINARY_INTEGER;
2. 引用的语法如下。
tableName(index);
index为binary_integer变量或者是可以转换成binary_integer变量的表达式。
表应用的一个实际的例子:
declare
type t_table is table of varchar2(10) index by BINARY_integer;
MyTab t_table;
begin
MyTab(1) := 'A';
MyTab(2) := 'B';
MyTab(3) := 'C';
DBMS_OUTPUT.PUT_LINE('First index:'||' '|| mytab(1) ||' ');
end;
3. pl/sql表的特点。
。表大小的限制是由binary_integer类型的取值范围决定的。
。表中的元素不需要按照特定的次序排列。因为它们不是连续的存在内存中,所以可以按任何顺序插入。
版本2.3之后,表允许存储记录的表。如下面的代码:
DECLARE
TYPE t_StudentTable IS TABLE OF students%ROWTYPE INDEX BY BINARY_INTEGER;
v_Students t_StudentTable;
BEGIN
SELECT * INTO v_Students(1100)
FROM students
WHERE id=1100;
DBMS_OUTPUT.PUT_LINE( v_Students(1100).OUUSRNM);
END;
然后可以以 table(index).field 来对其内容进行引用。
表还有一些属性以方便表的使用。如 count、first、last、exists等。