Pular para o conteúdo principal

Questão de Banco de Dados — PL/SQL e Outras Extensões SQL — FCC 2026

Banco de DadosPL/SQL e Outras Extensões SQL
Código
fc142361
Banca
FCC
Órgão
MPE SE
Ano
2026
Cargo
Ana ( )

Atenção: A tabela Processos deve ser utilizada para resolver a questão seguinte.

 

A tabela Processos armazena informações sobre processos judiciais e possui os campos id, classe (trabalhista, penal etc), status (ativo, inativo, encerrado etc) e valor (custas associadas).

 

É necessário automatizar o registro de novos processos na tabela Processos, garantindo que apenas processos com valores acima de 10.000 sejam armazenados com o status Ativo. Para isso, a equipe de TI criou o procedure RegistrarProcesso mostrado abaixo.

 CREATE PROCEDURE RegistrarProcesso @classe NVARCHAR(50), @status NVARCHAR(20), @valor DECIMAL(12,2) AS BEGIN IF @valor > 10000  I  END; 

Em condições ideais, para que o procedure registre corretamente um processo na tabela Processos, a lacuna I deve ser corretamente preenchida com:

  1. AADD ROW TO Processos (classe, status, valor) VALUES (@classe, @status, @valor)
  2. BEXEC INSERT INTO Processos VALUES (@classe, @status, @valor)
  3. CINSERT INTO Processos (classe, status, valor) VALUES (@classe, @status, @valor)
  4. DRUN INSERT (classe, status, valor) INTO Processos VALUES (@classe, @status, @valor)
  5. ESAVE INTO Processos (classe, status, valor) DATA (@classe, @status, @valor)
Revelar gabarito e comentário

GabaritoC — INSERT INTO Processos (classe, status, valor) VALUES (@classe, @status, @valor)

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

SQL: comando INSERT em procedures

Gabarito: letra C. Para registrar um novo processo na tabela, a lacuna deve conter o comando INSERT INTO Processos (classe, status, valor) VALUES (@classe, @status, @valor), que é a sintaxe padrão do SQL para inserir uma linha em uma tabela, usando os parâmetros do procedure como valores. As demais alternativas usam palavras-chave inexistentes ou sintaxe incorreta.

O comando INSERT é a instrução da sublinguagem DML (Data Manipulation Language) do SQL responsável por adicionar novas linhas a uma tabela. Sua sintaxe básica é INSERT INTO nome_tabela (coluna1, coluna2, ...) VALUES (valor1, valor2, ...), onde a lista de colunas é opcional (se omitida, assume-se a ordem das colunas da tabela) e a lista de valores deve corresponder em quantidade e tipo às colunas especificadas. No contexto de um procedure, os valores podem ser parâmetros passados na chamada, como @classe, @status e @valor.

A questão exige que apenas processos com valor acima de 10.000 sejam armazenados com status 'Ativo'. O procedure RegistrarProcesso recebe os parâmetros e, dentro do IF @valor > 10000, deve executar o INSERT para gravar o registro. A condição IF garante que o comando só será executado quando o valor for maior que 10.000, atendendo ao requisito de negócio.

As alternativas incorretas apresentam comandos que não existem na linguagem SQL padrão. ADD ROW TO, EXEC INSERT, RUN INSERT, SAVE INTO são tentativas de criar uma sintaxe que não é reconhecida pelos SGBDs relacionais. O comando correto é sempre INSERT INTO ... VALUES .... A banca explora exatamente essa confusão: o candidato que não domina a sintaxe básica do SQL pode ser induzido a escolher uma alternativa com aparência plausível, mas que não funciona.

Guarde a sintaxe canônica do INSERT: é ela que separa a alternativa correta das demais. Vejamos cada uma.

Alternativa A — ❌ Incorreta

ADD ROW TO Processos não é um comando SQL válido. A palavra-chave ADD é usada em ALTER TABLE para adicionar colunas, não linhas. A sintaxe correta para inserir uma linha é INSERT INTO.

Alternativa B — ❌ Incorreta

EXEC INSERT INTO mistura o comando EXEC (usado para executar procedures) com INSERT INTO, o que não é uma sintaxe válida. O INSERT é um comando autônomo e não deve ser precedido por EXEC.

Alternativa C — ✅ Correta ⟵ GABARITO

INSERT INTO Processos (classe, status, valor) VALUES (@classe, @status, @valor) é a sintaxe correta do comando DML para inserir uma nova linha na tabela Processos, especificando as colunas e os valores vindos dos parâmetros do procedure.

Alternativa D — ❌ Incorreta

RUN INSERT não é uma sintaxe SQL válida. A palavra-chave RUN não faz parte do comando de inserção. O correto é apenas INSERT INTO.

Alternativa E — ❌ Incorreta

SAVE INTO não é um comando SQL válido. A palavra-chave SAVE é usada em outros contextos (como SAVEPOINT em transações), mas não para inserir dados. O comando correto é INSERT INTO.

NÃO CAIA NESSA!

A banca cria alternativas com palavras-chave que parecem plausíveis (ADD ROW, EXEC INSERT, RUN INSERT, SAVE INTO), mas que não existem na sintaxe SQL. O candidato que não domina o comando INSERT pode ser tentado a escolher uma delas. A dica é: decore a sintaxe canônica INSERT INTO tabela (colunas) VALUES (valores) e elimine qualquer alternativa que fuja dela.

Gabarito: letra C

Link permanente: /questoes/fc142361