Questão de Banco de Dados — PL-SQL — FCC 2017
- Código
- fc038049
- Banca
- FCC
- Órgão
- TRE-SP
- Ano
- 2017
- Nível
- Superior
- Cargo
- Analista Judiciário - Análise de Sistemas
- AEXCEPTIONS_%BULK_LINE
- B%BULK_EXCEPTIONS
- C% LINECOUNT_BULK
- D%BULK_ROWCOUNT
- EROWCOUNT_%BULK
GabaritoD — %BULK_ROWCOUNT
Gabarito: letra D. O atributo %BULK_ROWCOUNT é utilizado em operações BULK (especialmente com a instrução FORALL) para retornar o número de linhas processadas em cada operação individual, diferentemente do %ROWCOUNT, que acumula o total de linhas de todas as operações.
A questão cobra um detalho específico da linguagem PL/SQL: os atributos especiais disponíveis após uma operação em bloco (BULK). O %BULK_ROWCOUNT é uma tabela indexada que armazena, para cada iteração, a quantidade de linhas afetadas. Os demais atributos citados ou não existem ou têm outra finalidade.
SQL EXCEPTIONS_%BULK_LINE não é um atributo válido no Oracle PL/SQL. O nome correto para capturar exceções em operações bulk é %BULK_EXCEPTIONS, e mesmo este não retorna a contagem de linhas.
%BULK_EXCEPTIONS é um atributo que armazena informações sobre exceções ocorridas durante uma operação bulk (código do erro e índice da iteração), mas não retorna a quantidade de linhas processadas por operação.
% LINECOUNT_BULK (com espaço ou sem) não existe na sintaxe PL/SQL. Não há nenhum atributo com este nome.
%BULK_ROWCOUNT é exatamente o atributo que armazena um array associativo indexado pelo número da iteração, contendo a quantidade de linhas afetadas naquela iteração. Resolve a limitação do %ROWCOUNT que só retorna o total acumulado.
ROWCOUNT_%BULK inverte a ordem dos elementos; a forma correta é %BULK_ROWCOUNT (o prefixo % vem antes do nome).
Em PL/SQL, lembre-se da nomenclatura: atributos relacionados a bulk sempre começam com %BULK_ (como %BULK_ROWCOUNT, %BULK_EXCEPTIONS). O %ROWCOUNT é o genérico para operações não-bulk.
Gabarito: letra D
Link permanente: /questoes/fc038049