Pular para o conteúdo principal

Questão de Banco de Dados — PL/SQL e Outras Extensões SQL — Avança SP 2023

Banco de DadosPL/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?
  1. ACREATE PROCEDURE nome_procedimento
  2. BCREATE PROCEDIMENTO nome_procedimento
  3. CCREATE FUNCTION nome_procedimento
  4. DCREATE PROCEDURE nome_function
  5. 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 function obrigatoriamente retorna um valor (através da cláusula RETURN), enquanto uma procedure nã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.

Gabarito: letra A

Link permanente: /questoes/qa537561