Questão FC374560
Qual das alternativas contém uma afirmação INCORRETA sobre o código PL/SQL apresentado?
Linguagem SQL
Instituto Consulplan · 2025
Um analista de sistemas da Prefeitura Municipal de Nova Iguaçu precisa gerar um relatório de arrecadação fiscal. Para isso, ele escreve a seguinte consulta em PL/SQL para calcular o total de impostos pagos pelos contribuintes:
DECLARE
v_total NUMBER;
BEGIN
SELECT SUM(valor) INTO v_total
FROM pagamentos
WHERE categoria = 'IMPOSTO';
DBMS_OUTPUT.PUT_LINE('Total de impostos arrecadados: ' || v_total);
END;
Ao revisar o código, foram identificados erros conceituais que podem comprometer sua execução.
Qual das alternativas contém uma afirmação INCORRETA sobre o código PL/SQL apresentado?
- A variável v_total precisa ser declarada antes do bloco BEGIN.
- O comando SELECT INTO pode falhar se a consulta retornar múltiplas linhas.
- A variável v_total pode armazenar qualquer quantidade de valores retornados pelo SUM( ).
- O pacote DBMS_OUTPUT precisa ser ativado com SET SERVEROUTPUT ON para exibir a saída.
Mostrar resposta e comentário
Gabarito
Certo
Comentário do professor
A afirmação é incorreta porque SUM() não devolve uma coleção de valores, mas sim um único valor agregado. Em SQL/PL/SQL a função de agregação calcula o total das linhas consultadas e retorna um escalar: \(v = \text{SUM(valor)}\).
Assim, a variável v_total recebe exatamente esse único resultado (ou NULL se não houver linhas). Não há "vários valores" para serem armazenados em uma única variável escalar.
Se a consulta fosse projetada para retornar múltiplas linhas (por exemplo, sem agregação), o uso de SELECT INTO causaria erro de execução. Portanto, afirmar que v_total pode armazenar qualquer quantidade de valores retornados por SUM() está conceitualmente errado.
Conteúdo do catálogo FC Concursos · Atualizado em