-
COLEÇÕES
Com freqüência, é conveniente manipular várias variáveis de uma vez como uma
unidade. Esses tipos de dados são conhecidos como coleções. O Oracle7 fornecia um tipo
de coleção: tabela index-by. O Oracle8i acrescentou outros dois tipos de coleção: tabelas
aninhadas e varrays. O Oracle9i adiciona a capacidade de criar coleções de múltiplos
níveis, isto é, coleção de coleções.
http://pt.scribd.com/doc/58491916/217/Colecoes-no-banco-de-dados
-
Table 5-1 Characteristics of PL/SQL Collection Types
Collection Type | Number of Elements | Subscript Type | Dense or Sparse | Where Created | Can Be Object Type Attribute |
---|
Associative array (or index-by table) | Unbounded | String or integer | Either | Only in PL/SQL block | No |
Nested table | Unbounded | Integer | Starts dense, can become sparse | Either in PL/SQL block or at schema level | Yes |
Variable-size array (varray) | Bounded | Integer | Always dense | Either in PL/SQL block or at schema level | Yes |
Unbounded means that, theoretically, there is no limit to the number of elements in the collection. Actually, there are limits, but they are very high—for details, see Referencing Collection Elements.
Dense means that the collection has no gaps between elements—every element between the first and last element is defined and has a value (which can be NULL
).
-
Understanding Associative Arrays (Index-By Tables)
An associative array (also called an index-by table) is a set of key-value pairs. Each key is unique, and is used to locate the corresponding value. The key can be either an integer or a string.
Using a key-value pair for the first time adds that pair to the associative array. Using the same key with a different value changes the value.
Understanding Nested Tables
Conceptually, a nested table is like a one-dimensional array with an arbitrary number of elements.
Within the database, a nested table is a column type that holds a set of values. The database stores the rows of a nested table in no particular order. When you retrieve a nested table from the database into a PL/SQL variable, the rows are given consecutive subscripts starting at 1. These subscripts give you array-like access to individual rows.
Understanding Variable-Size Arrays (Varrays)
A variable-size array (varray) is an item of the data type VARRAY
. A varray has a maximum size, which you specify in its type definition. A varray can contain a varying number of elements, from zero (when empty) to the maximum size. A varray index has a fixed lower bound of 1 and an extensible upper bound. To access an element of a varray, you use standard subscripting syntax.
fonte: http://docs.oracle.com/cd/B28359_01/appdev.111/b28370/collections.htm#CHDBHJEI
-
Many programming techniques use collection types such as arrays, bags, lists, nested tables, sets, and trees. To support these techniques in database applications, PL/SQL provides the datatypes
TABLE
and VARRAY
, which allow you to declare index-by tables, nested tables and variable-size arrays. In this chapter, you learn how those types let you reference and manipulate collections of data as whole objects. You also learn how the datatype RECORD
lets you treat related but dissimilar data as a logical unit.
http://docs.oracle.com/cd/B10500_01/appdev.920/a96624/05_colls.htm
-
Varray (Variable array - array de tamanho variável) é uma forma persistente, mas limitada, de coleção que pode ser criada no banco de dados, bem como em uma PL/SQL. Semelhante a uma tabela aninhada, um varray também é uma coleção homogênea unidimensional. O tamanho da coleção e o esquema de armazenamento são os fatores que diferenciam os varrays das tabelas aninhadas. Ao contrário de uma tabela aninhada, um varray pode acomodar apenas um número (fixo) definido de elementos.
Fonte: devmedia
Leia mais em: PL/SQL Collections http://www.devmedia.com.br/pl-sqlcollections/30646#ixzz3zvZuMae2
-
c-
varrays no oracle são os famosos vetores, estruturas que armazenam variaveis do mesmo tipo em posições contíguas da memoria. Para se usar um varray no pl sql:
create or replace type nomeDoVarray is varray (n) of tipo;