Pular para o conteúdo principal

Questão de Banco de Dados — PL-SQL — FGV 2025

Banco de DadosPL-SQL
Código
fg121827
Banca
FGV
Órgão
TCE-RR
Ano
2025
Nível
Superior
Cargo
Analista Administrativo - Tecnologia da Informação, com especialidade em Banco de Dados
Na linguagem PL/SQL, a seção de tratamento de exceções permite que os programadores especifiquem quais ações devem ser tomadas quando uma determinada exceção ocorre.Nesse contexto, a seguinte exceção é gerada quando um código PL/SQL tenta armazenar um valor duplicado em uma coluna que possui um índice exclusivo definido:
  1. AVALUE_ERROR
  2. BDUP_VALUE_ON_INDEX
  3. CNO_DATA_FOUND
  4. DTOO_MANY_ROWS
  5. EDUPLICATED_INDEX
Revelar gabarito e comentário

GabaritoB — DUP_VALUE_ON_INDEX

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”.

Exceções predefinidas do PL/SQL: DUP_VALUE_ON_INDEX

Gabarito: letra B. A exceção que ocorre ao tentar inserir um valor duplicado em uma coluna com índice exclusivo (único) é a DUP_VALUE_ON_INDEX. Essa é uma exceção predefinida do PL/SQL do Oracle, que é automaticamente lançada quando uma violação de restrição de chave única é detectada. As demais alternativas correspondem a outras situações de erro.

Alternativa A — ❌ Incorreta

VALUE_ERROR é gerada quando ocorre um erro de valor, como truncamento ou conversão inválida (ex.: atribuir um número muito grande a uma variável). Não se aplica a duplicidade de índice.

Alternativa B — ✅ Correta ⟵ GABARITO

DUP_VALUE_ON_INDEX é a exceção específica para violação de restrição de unicidade (índice único). É a escolha correta.

Alternativa C — ❌ Incorreta

NO_DATA_FOUND é lançada quando uma consulta SELECT INTO não retorna nenhuma linha. Não tem relação com duplicidade.

Alternativa D — ❌ Incorreta

TOO_MANY_ROWS ocorre quando um SELECT INTO retorna mais de uma linha. Também não se aplica.

Alternativa E — ❌ Incorreta

DUPLICATED_INDEX não é uma exceção predefinida no PL/SQL. O nome correto é DUP_VALUE_ON_INDEX.

PEGA ESSA DICA!

Memorize as exceções predefinidas mais comuns do PL/SQL. Uma tabela ajuda:

Exceção

SQLCODE

Situação

DUP_VAL_ON_INDEX

-00001

Tentativa de inserir valor duplicado em índice único

VALUE_ERROR

-06502

Erro de valor (conversão/truncamento)

NO_DATA_FOUND

+00100

SELECT INTO sem linhas

TOO_MANY_ROWS

-01422

SELECT INTO com múltiplas linhas

CASE_NOT_FOUND

-06592

Nenhum WHEN em CASE e sem ELSE

Gabarito: letra B (DUP_VALUE_ON_INDEX).

Link permanente: /questoes/fg121827