Questão de Banco de Dados — PL-SQL — CESPE / CEBRASPE 2025
Banco de Dados›PL-SQL
Código
ce195364
Banca
CESPE / CEBRASPE
Órgão
BANRISUL
Ano
2025
Nível
Superior
Cargo
Técnico em Tecnologia da Informação II - Área: Administração de Banco de Dados
Em bancos de dados relacionais, stored proceduresI podem ter parâmetros de entrada (IN), saída (OUT) e de entrada/saída (INOUT).II permitem agrupar múltiplas instruções DML (INSERT, UPDATE, DELETE) e controle de fluxo (IF, LOOP, EXCEPTION).III apresentam diretamente conjuntos de resultados (tabelas) sempre que são executados.IV podem ser chamados dentro de uma cláusula SELECT como se fossem funções escalares. Estão certos apenas os itens
AI e II.
BI e III.
CII e IV.
DI, III e IV.
EII, III e IV.
Revelar gabarito e comentário▾
GabaritoA — I e II.
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”.
Stored Procedures em Bancos de Dados Relacionais
Gabarito: letra A. Apenas os itens I e II estão corretos. Stored procedures aceitam parâmetros de entrada (IN), saída (OUT) e entrada/saída (INOUT) — característica padrão em SGBDs relacionais. Também permitem encapsular múltiplas instruções DML (INSERT, UPDATE, DELETE) e estruturas de controle de fluxo (IF, LOOP, EXCEPTION). Já o item III erra ao afirmar que "sempre" apresentam conjuntos de resultados — muitas procedures executam ações sem retornar tabelas. O item IV confunde procedure com função: procedures são chamadas com CALL/EXECUTE, não dentro de cláusulas SELECT como funções escalares.
Item
Afirmação
Correto?
Motivo
I
Podem ter parâmetros IN, OUT e INOUT
✅
Recurso padrão em SGBDs relacionais (Oracle, SQL Server, PostgreSQL).
II
Permitem agrupar DML e controle de fluxo (IF, LOOP, EXCEPTION)
✅
Finalidade principal: encapsular lógica de negócio com comandos SQL e estruturas de programação.
III
Apresentam diretamente conjuntos de resultados sempre que executados
❌
Nem toda procedure retorna tabela; muitas executam apenas ações (inserir, logar). O termo "sempre" torna a afirmativa falsa.
IV
Podem ser chamadas dentro de SELECT como funções escalares
❌
Procedures são chamadas com CALL/EXECUTE, não dentro de SELECT. Isso é função, não procedure.
Stored procedures: Parâmetros (IN (entrada), OUT (saída), INOUT (entrada/saída)); Instruções (DML (INSERT, UPDATE, DELETE), Controle de fluxo (IF, LOOP, EXCEPTION)); Retorno (Sempre retorna tabela (III), Pode executar ação sem dados); Chamada (Dentro de SELECT (IV), CALL / EXECUTE)
Item I — ✅ Correto
Stored procedures suportam os três modos de parâmetros: IN (entrada, valor passado para a procedure), OUT (saída, valor retornado ao chamador) e INOUT (entrada e saída). Esse é um recurso oferecido pela maioria dos SGBDs relacionais (Oracle, SQL Server, PostgreSQL, etc.).
Item II — ✅ Correto
A finalidade principal de uma stored procedure é agrupar uma sequência de comandos SQL, incluindo instruções DML (INSERT, UPDATE, DELETE) e lógica de controle de fluxo (IF, LOOP, EXCEPTION), permitindo reutilização e encapsulamento de regras de negócio no servidor do banco de dados.
Item III — ❌ Incorreto
Nem toda stored procedure retorna um conjunto de resultados (tabela). Uma procedure pode ser projetada apenas para executar uma ação (como inserir dados, enviar e-mail, gerar logs) sem devolver dados. O termo "sempre" torna a afirmativa falsa. Procedures que retornam conjuntos de resultados (por exemplo, via SELECT dentro da procedure) existem, mas não é obrigatório.
NÃO CAIA NESSA!
O item III usa o advérbio "sempre", uma palavra que frequentemente induz ao erro em questões de bancos de dados. A banca testa se o candidato sabe que stored procedures não são obrigadas a retornar tabelas — algumas executam apenas ações. Fique atento a generalizações absolutas (sempre, nunca, todo).
Item IV — ❌ Incorreto
Stored procedures são executadas com comandos específicos (CALL, EXECUTE, EXEC) e não podem ser invocadas dentro de uma cláusula SELECT como funções escalares. Funções (scalar functions ou table-valued functions) são os objetos adequados para uso em SELECT. Embora alguns SGBDs permitam que funções sejam chamadas em SELECT, procedures não têm essa sintaxe.
Conclusão: Estão corretos apenas os itens I e II. Portanto, a alternativa correta é a letra A.