Pular para o conteúdo principal

Questão de Banco de Dados — SQL — Quadrix 2025

Banco de DadosSQL
Código
qg596700
Banca
Quadrix
Órgão
CRC-SP
Ano
2025
Nível
Superior
Cargo
Analista de Desenvolvimento
Os bancos de dados e os SGBDs são fundamentais em todos os sistemas e precisam ser bem definidos e projetados. Com base nessa informação, julgue o item seguinte.As Stored Procedures devem sempre retornar um valor escalar e não podem conter comandos de manipulação de dados.
  1. CCerto
  2. EErrado
Revelar gabarito e comentário

GabaritoE — Errado

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

Gabarito: ERRADO (letra E). A afirmação está incorreta porque Stored Procedures (procedimentos armazenados) não precisam retornar um valor escalar — elas podem retornar conjuntos de resultados (result sets), múltiplos valores via parâmetros de saída, ou até nenhum valor — e podem sim conter comandos de manipulação de dados (INSERT, UPDATE, DELETE), sendo essa uma de suas finalidades mais comuns. O conceito correto é que Stored Procedures são blocos de código SQL armazenados no banco, que encapsulam lógica e podem executar qualquer tipo de comando, incluindo DML e DDL.

Uma Stored Procedure é um conjunto de instruções SQL pré-compiladas e armazenadas no SGBD, que pode ser executado sob demanda. Ela é criada com o comando CREATE PROCEDURE e invocada com EXEC ou CALL, dependendo do banco. Diferentemente de funções (UDFs), que em muitos SGBDs são obrigadas a retornar um valor escalar ou tabela, as procedures têm liberdade: podem retornar um ou mais result sets, usar parâmetros de entrada e saída, e não precisam retornar nada. Por exemplo, uma procedure de atualização de estoque pode simplesmente executar um UPDATE e não retornar valor algum.

A afirmação também erra ao dizer que procedures não podem conter comandos de manipulação de dados. Na prática, o uso mais comum de procedures é justamente encapsular operações de escrita (INSERT, UPDATE, DELETE) para garantir consistência, aplicar regras de negócio e melhorar a segurança. Um exemplo clássico: uma procedure sp_Transferir que executa um UPDATE na conta de origem e outro na conta de destino, dentro de uma transação. Isso é perfeitamente válido e amplamente utilizado.

A confusão que a banca explora é misturar características de funções com as de procedures. Funções (como FUNCTION no SQL Server ou FUNCTION no Oracle) geralmente retornam um valor escalar e têm restrições quanto ao uso de DML (em alguns bancos, funções não podem modificar dados). Já as procedures são mais flexíveis. Essa distinção é essencial para responder corretamente.

NÃO CAIA NESSA!

A banca inverte as características de funções e procedures. Funções tipicamente retornam um valor escalar e têm restrições de DML; procedures podem retornar múltiplos resultados e executar DML livremente. O candidato que confunde os dois cai na armadilha.

1Retorno
Não precisa ser escalar
Pode retornar result sets
Pode retornar via parâmetro OUT
Pode não retornar nada
2Comandos
Pode conter DML (INSERT, UPDATE, DELETE)
Pode conter DDL
3Uso típico
Encapsular regras de negócio
Controle transacional
Segurança
4Diferença de funções
Funções: retorno escalar obrigatório
Funções: restrições a DML
Stored Procedures
LEVELsoulevel.com.br
Stored Procedures: Retorno (Não precisa ser escalar, Pode retornar result sets, Pode retornar via parâmetro OUT, Pode não retornar nada); Comandos (Pode conter DML (INSERT, UPDATE, DELETE), Pode conter DDL); Uso típico (Encapsular regras de negócio, Controle transacional, Segurança); Diferença de funções (Funções: retorno escalar obrigatório, Funções: restrições a DML)

Item — ❌ ERRADO

A afirmação "As Stored Procedures devem sempre retornar um valor escalar e não podem conter comandos de manipulação de dados" é falsa por dois motivos:

  1. Retorno: Stored Procedures não são obrigadas a retornar valor escalar. Elas podem retornar conjuntos de resultados (result sets), múltiplos valores via parâmetros de saída (OUT), ou nenhum valor. A obrigatoriedade de retorno escalar é típica de funções, não de procedures.

  2. DML: Procedures podem e frequentemente contêm comandos de manipulação de dados (INSERT, UPDATE, DELETE). Essa é uma de suas principais utilidades — encapsular operações de escrita com lógica de negócio e controle transacional.

Portanto, o item está errado.

Gabarito: letra E (ERRADO).

Link permanente: /questoes/qg596700