Pular para o conteúdo principal

Questão de Banco de Dados — PL-SQL — FCC 2017

Banco de DadosPL-SQL
Código
fc038049
Banca
FCC
Órgão
TRE-SP
Ano
2017
Nível
Superior
Cargo
Analista Judiciário - Análise de Sistemas
No âmbito dos blocos PL/SQL, é fato que operações em BULK são utilizadas para melhorar o desempenho das instruções SQL e usar o mínimo possível do Context Switch. Todavia ao utilizar o %ROWCOUNT em operações com BULK o resultado retornado talvez não seja o esperado, pois ele irá retornar a quantidade total de linhas que foram retornadas ou modificadas e não a quantidade por cada uma das operações realizadas. Para isto, as operações em BULK possuem alguns atributos a mais que solucionam essa necessidade, ou seja, exibem a quantidade por cada uma das operações realizadas em um BULK como é o caso de SQL
  1. AEXCEPTIONS_%BULK_LINE
  2. B%BULK_EXCEPTIONS
  3. C% LINECOUNT_BULK
  4. D%BULK_ROWCOUNT
  5. EROWCOUNT_%BULK
Revelar gabarito e comentário

GabaritoD — %BULK_ROWCOUNT

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

Atributos BULK em PL/SQL: %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.

Alternativa A — ❌ Incorreta

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.

Alternativa B — ❌ Incorreta

%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.

Alternativa C — ❌ Incorreta

% LINECOUNT_BULK (com espaço ou sem) não existe na sintaxe PL/SQL. Não há nenhum atributo com este nome.

Alternativa D — ✅ Correta ⟵ GABARITO

%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.

Alternativa E — ❌ Incorreta

ROWCOUNT_%BULK inverte a ordem dos elementos; a forma correta é %BULK_ROWCOUNT (o prefixo % vem antes do nome).

PEGA ESSA DICA!

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