Considere a linguagem PL/SQL utilizada no Sistema Gerenciador de Bancos de Dados Oracle 21c. Suponha que tenha sido criada uma variável cuja declaração limite seu tamanho a 3 caracteres. Se houver a tentativa de atribuir um valor com mais de 3 caracteres a essa variável, ocorrerá
Aa geração de uma mensagem de aviso para que o usuário redefina o valor a ser atribuído.
Ba geração de uma mensagem de erro.
Ca inserção do valor Null, em lugar do valor com mais de 3 caracteres.
Dum aumento automático desse tamanho máximo, acompanhado de uma mensagem de aviso.
Eum corte do número de caracteres desse valor, até atingir 3 caracteres.
Revelar gabarito e comentário▾
GabaritoB — a geração de uma mensagem de erro.
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”.
PL/SQL Oracle: Atribuição de Valor Excedente
Gabarito: letra B. No PL/SQL Oracle, ao tentar atribuir um valor com mais caracteres do que o tamanho máximo declarado para uma variável (ex.: VARCHAR2(3)), o banco de dados gera uma mensagem de erro em tempo de execução (ORA-06502), e não corta, insere NULL, aumenta o tamanho ou exibe apenas um aviso.
O contexto fornecido menciona que, para variáveis do tipo NUMBER com precisão, há arredondamento, mas para strings de caracteres, a regra é diferente. A documentação oficial do Oracle confirma que a atribuição de um valor que excede o limite de caracteres resulta em erro — uma vez que o PL/SQL é fortemente tipado e verifica os limites.
Alternativa A — ❌ Incorreta
Não há mensagem de aviso pedindo redefinição; o que ocorre é um erro imediato.
Alternativa B — ✅ Correta <-- GABARITO
Exatamente: gera uma mensagem de erro (ex.: "ORA-06502: PL/SQL: numeric or value error: character string buffer too small").
Alternativa C — ❌ Incorreta
Não insere NULL; o erro é disparado antes de qualquer atribuição.
Alternativa D — ❌ Incorreta
Não há aumento automático do tamanho; a declaração é fixa e imutável em tempo de execução.
Alternativa E — ❌ Incorreta
Não há corte de caracteres; se houver excesso, o PL/SQL interrompe a execução com erro. (Nota: Em SQL puro, ao inserir em uma coluna de tabela, pode ocorrer truncamento silencioso dependendo do modo, mas em PL/SQL o comportamento é erro.)
PEGA ESSA DICA!
Lembre-se: em PL/SQL Oracle, variáveis têm tamanho fixo definido na declaração. Qualquer violação resulta em erro. Já em SQL, com colunas VARCHAR2, o truncamento só ocorre se o parâmetro SQL_TRUNCATE estiver ativado – mas não é o caso do PL/SQL.