Questão de Banco de Dados — PL/SQL e Outras Extensões SQL — Avança SP 2023
Banco de Dados›PL/SQL e Outras Extensões SQL
Código
qa537561
Banca
Avança SP
Órgão
Pref Morungaba
Ano
2023
Cargo
ASI (Morungaba)
Qual a sintaxe para criar um procedimento em PL/SQL?
ACREATE PROCEDURE nome_procedimento
BCREATE PROCEDIMENTO nome_procedimento
CCREATE FUNCTION nome_procedimento
DCREATE PROCEDURE nome_function
ECREATE FUNCTION nome_function
Revelar gabarito e comentário▾
GabaritoA — CREATE PROCEDURE nome_procedimento
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”.
Sintaxe de criação de procedimento em PL/SQL
Gabarito: letra A. A sintaxe correta para criar um procedimento em PL/SQL é CREATE PROCEDURE nome_procedimento. A palavra-chave PROCEDURE é a que define o objeto como um procedimento, e nome_procedimento é o identificador que o programador escolhe. As demais alternativas trocam PROCEDURE por PROCEDIMENTO (palavra em português, não aceita pelo Oracle) ou usam FUNCTION, que é a palavra-chave para criar funções, não procedimentos.
PL/SQL (Procedural Language/Structured Query Language) é a extensão procedural da linguagem SQL desenvolvida pela Oracle Corporation. Ela combina comandos SQL com recursos de linguagens de programação, como variáveis, estruturas de controle (IF, CASE, LOOP) e tratamento de exceções. Dentro do PL/SQL, existem dois tipos principais de subprogramas nomeados e armazenados no banco de dados: procedures e functions. A diferença fundamental entre eles é que uma functionobrigatoriamente retorna um valor (através da cláusula RETURN), enquanto uma procedurenão retorna valor — ela executa uma ação. Essa distinção é crucial e é exatamente o que a banca explora nesta questão.
A sintaxe básica para criar uma procedure é:
CREATE [OR REPLACE] PROCEDURE nome_procedimento
[ (parâmetros) ]
IS
-- declarações de variáveis locais
BEGIN
-- comandos executáveis
EXCEPTION
-- tratamento de exceções (opcional)
END;
O comando CREATE PROCEDURE é um comando da sublinguagem DDL (Data Definition Language), pois define a estrutura de um objeto do banco de dados. É importante notar que a palavra-chave é sempre em inglês: PROCEDURE, e não PROCEDIMENTO. O Oracle não reconhece a versão em português. Já a palavra FUNCTION é usada exclusivamente para criar funções, que são subprogramas que retornam um valor.
Para fixar: a banca quer que você saiba a diferença entre os dois tipos de subprogramas e a palavra-chave correta para cada um. Guarde a fronteira entre PROCEDURE (ação, não retorna valor) e FUNCTION (retorna valor) — é exatamente nela que as alternativas se dividem.
Alternativa A — ✅ Correta ⟵ GABARITO
Esta é a sintaxe correta. CREATE PROCEDURE é o comando DDL que cria um procedimento armazenado no banco de dados Oracle. O nome do procedimento é um identificador definido pelo programador. É a forma canônica e universalmente aceita em PL/SQL.
Alternativa B — ❌ Incorreta
A palavra PROCEDIMENTO está em português. O Oracle (e o padrão SQL) exige a palavra-chave em inglês: PROCEDURE. Usar PROCEDIMENTO resultaria em erro de sintaxe. A banca troca o termo em inglês pelo seu equivalente em português para confundir o candidato que não domina a terminologia técnica.
Alternativa C — ❌ Incorreta
CREATE FUNCTION é a sintaxe para criar uma função, não um procedimento. A diferença essencial: a função retorna um valor obrigatoriamente (via RETURN), enquanto o procedimento executa uma ação sem retorno. A banca troca o tipo de subprograma — o candidato que confunde os dois conceitos cai nesta alternativa.
Alternativa D — ❌ Incorreta
Aqui há uma dupla troca: usa CREATE PROCEDURE (correto para procedimento), mas o nome do objeto é nome_function. O nome é apenas um identificador — poderia ser qualquer nome válido —, mas a banca usa function para induzir o candidato a achar que está criando uma função. O erro está na inconsistência: se é PROCEDURE, o nome deveria refletir isso (ex.: nome_procedure), mas tecnicamente o nome poderia ser qualquer um. A pegadinha é a mistura dos conceitos.
Alternativa E — ❌ Incorreta
CREATE FUNCTION nome_function é a sintaxe correta para criar uma função chamada nome_function. Mas a questão pede a sintaxe para criar um procedimento. Portanto, está errada por usar FUNCTION em vez de PROCEDURE. É a alternativa que mistura os dois conceitos de forma mais explícita.
NÃO CAIA NESSA!
A banca explora a confusão entre PROCEDURE e FUNCTION. O candidato que não domina a diferença — procedure executa ação sem retorno; function retorna valor — tende a marcar qualquer alternativa com FUNCTION. Além disso, a alternativa B troca a palavra em inglês pela versão em português (PROCEDIMENTO), outra armadilha clássica. Com treino, você enxerga essas trocas de longe 💪
PEGA ESSA DICA!
Para fixar, memorize a tabela comparativa:
Critério
PROCEDURE
FUNCTION
Palavra-chave
CREATE PROCEDURE
CREATE FUNCTION
Retorno
Não retorna valor
Retorna valor (obrigatório)
Uso típico
Executar ações (INSERT, UPDATE, etc.)
Calcular e retornar um valor
Chamada
Como comando autônomo
Dentro de expressões SQL
Na prova, ao ver CREATE FUNCTION, pergunte-se: "a questão pede função ou procedimento?" Se pede procedimento, elimine todas as alternativas com FUNCTION.