Analista Judiciário - Área Apoio Especializado - Tecnologia da Informação
Considere o programa PL/SQL para o Oracle 11g: SQL> DECLARE 2 aumento NUMBER(8,2); 3 processo VARCHAR2(10) := '555/15'; 4 BEGIN 5 SELECT HonorPericiais * 0.20 INTO aumento 6 FROM DebTrab 7 WHERE processos = NroProcesso; 8 END; 9 / O programa acima
Atem erro de sintaxe e de lógica e não vai funcionar.
Bseleciona todas as tuplas da tabela cujo campo NroProcesso seja 555/15.
Caplica um aumento de 20% em todos os campos HonorPericiais da tabela.
Daplica um aumento de 20% no campo HonorPericiais da linha cujo campo NroProcesso seja 555/15.
Eatribui à variável aumento o valor dos campos HonorPericiais da tabela multiplicados por 0.20.
Revelar gabarito e comentário▾
GabaritoA — tem erro de sintaxe e de lógica e não vai funcionar.
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”.
PL/SQL: Erro de sintaxe e lógica em SELECT INTO
Gabarito: letra A. O programa contém erro de sintaxe (identificador "processos" não declarado) e, mesmo que corrigido, a lógica de SELECT INTO para uma única linha com possível retorno de múltiplas linhas seria inadequada. O bloco não será executado.
A banca testa o conhecimento de PL/SQL básico: declaração de variáveis, nomenclatura e sintaxe do SELECT INTO. O erro central está no uso do nome processos na cláusula WHERE, enquanto a variável foi declarada como processo. Além disso, SELECT ... INTO espera exatamente um registro; se houver mais de um, gera exceção TOO_MANY_ROWS.
Alternativa A — ✅ Correta ⟵ GABARITO
Correta. Há erro de sintaxe: o identificador processos não foi declarado (a variável é processo). Isso impede a compilação do bloco. Mesmo que corrigido para processo, se a consulta retornar mais de uma linha (o que é possível, pois não há garantia de unicidade), ocorreria erro em tempo de execução. Portanto, o programa tem erro de sintaxe e de lógica e não funciona.
Alternativa B — ❌ Incorreta
Incorreta. A instrução SELECT ... INTO não retorna um conjunto de tuplas; ela atribui um único valor a uma variável. Além disso, o erro de sintaxe impede qualquer execução. A descrição não corresponde ao comando.
Alternativa C — ❌ Incorreta
Incorreta. O comando é um SELECT, não um UPDATE. Não há modificação de dados na tabela; apenas leitura. O programa não aplica aumento algum.
Alternativa D — ❌ Incorreta
Incorreta. Novamente, SELECT não aplica alterações. A afirmativa descreve um comportamento de UPDATE, não de SELECT ... INTO. Além do erro de sintaxe.
Alternativa E — ❌ Incorreta
Incorreta. A expressão calcula HonorPericiais * 0.20 para uma única linha (se a consulta fosse válida), não para todos os campos da tabela. O erro de sintaxe também impede que qualquer valor seja atribuído.
NÃO CAIA NESSA!
A banca usa o plural "processos" no WHERE, enquanto a variável declarada é "processo". O candidato pode ler rapidamente e não perceber a diferença, assumindo que o código está correto. Sempre verifique a correspondência exata dos nomes de variáveis e colunas.