Na parte declarativa de qualquer bloco PL/SQL, subprograma o...

Próximas questões
Com base no mesmo assunto
Q215368 Banco de Dados
Na parte declarativa de qualquer bloco PL/SQL, subprograma ou pacote pode-se criar coleções (collections), definindo-se o tipo de coleção
Alternativas

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

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 TypeNumber of ElementsSubscript TypeDense or SparseWhere CreatedCan 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

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo