Na parte declarativa de qualquer bloco PL/SQL, subprograma o...
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Gabarito: C - TABLE ou VARRAY.
O tema da questão envolve o entendimento de coleções no contexto do PL/SQL, que é uma linguagem procedimental usada junto com SQL no banco de dados Oracle. Coleções são estruturas de dados que agrupam elementos de um mesmo tipo e permitem operações para armazenar e recuperar esses elementos. No PL/SQL, existem três tipos principais de coleções: VARRAYs, Nested Tables e Associative Arrays (também conhecidos como index-by tables).
A resposta correta é a alternativa C, que menciona TABLE e VARRAY. O termo TABLE, nesse contexto, refere-se às Nested Tables, que são uma forma de coleção que pode ser armazenada no banco de dados e pode conter um número variável de elementos, mas diferentemente de VARRAYs, não possuem um limite fixo de elementos que podem ser armazenados. Por outro lado, VARRAYs (Variable-size Arrays) são coleções que têm um número máximo fixo de elementos e mantêm a ordem de inserção dos elementos.
É importante notar que o termo ARRAY não é usado em PL/SQL para designar coleções, e sim como parte da nomenclatura Associative Array, que não era uma opção na questão. Ao escolher a alternativa correta, está se reconhecendo a terminologia apropriada para coleções na linguagem PL/SQL.
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo
Comentários
Veja os comentários dos nossos alunos
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.
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.
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
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo