Questão nº 57
Questão de Tecnologia da Informação · FCC DPE-AM 2017 (nº 57)
A linguagem SQL inclui, em seus comandos, a criação e utilização de procedimentos armazenados e de funções, sobre os quais é correto afirmar que
- Auma função comporta vários parâmetros de saída.
- Bhá um limite no número de funções em cada banco de dados, imposto pela linguagem SQL.
- Cuma função pode ser invocada em um comando SQL. (alternativa correta)
- Dprocedimentos armazenados são invocados pelo comando GO.
- Eprocedimentos armazenados não suportam parâmetros de entrada e saída.
Resposta comentada
Gabarito Alternativa C
Funções (Functions) em SQL são como pequenas "calculadoras" que recebem alguns valores (parâmetros de entrada), fazem um processamento e sempre retornam um único resultado (um valor ou uma tabela). Elas podem ser usadas diretamente dentro de comandos SQL, como parte de uma SELECT ou WHERE. Procedimentos Armazenados (Stored Procedures) são blocos de código SQL mais complexos que podem realizar várias ações, como inserir, atualizar ou excluir dados, e podem ou não retornar valores; eles são executados como comandos independentes.
- (A) Incorreta: Funções em SQL retornam um único valor escalar ou uma única tabela. A capacidade de ter múltiplos parâmetros de saída (
OUTPUTouOUT) é uma característica dos procedimentos armazenados, não das funções. Esta é uma pegadinha comum que confunde as características de funções e procedimentos. - (B) Incorreta: A linguagem SQL não impõe um limite específico no número de funções que podem existir em um banco de dados. Qualquer limite seria prático (relacionado a recursos do sistema, como armazenamento ou memória) e não uma restrição da linguagem SQL em si.
- (C) Correta: Uma das principais características e vantagens das funções é que elas podem ser invocadas diretamente dentro de comandos SQL, como em uma cláusula
SELECT,WHERE,HAVING,ORDER BYou até mesmo em umINSERTouUPDATE. Por exemplo:SELECT Nome, CalcularIdade(DataNascimento) FROM Pessoas;. - (D) Incorreta: Procedimentos armazenados são invocados por comandos como
EXECouEXECUTE(ex:EXEC NomeDoProcedimento). O comandoGOnão é um comando SQL padrão, mas sim um delimitador de lote (batch terminator) usado por algumas ferramentas de cliente (como o SQL Server Management Studio) para indicar o fim de um grupo de instruções SQL a serem enviadas ao servidor. - (E) Incorreta: Procedimentos armazenados são extremamente flexíveis e suportam sim parâmetros de entrada (para receber dados) e parâmetros de saída (para retornar dados para o ambiente de chamada). Isso permite que eles sejam reutilizáveis e interajam dinamicamente com as aplicações.
Fonte: FCC DPE-AM 2017 Analista em Gestão Especializado em Tecnologia da Informação de Defensoria - Analista de Banco de Dados (Caderno Tipo 001). Reproduzida para fins de estudo.