Pular para o conteúdo principal

Questão de Banco de Dados — SQL — FCC 2015

Banco de DadosSQL
Código
fc026539
Banca
FCC
Órgão
TRT - 9ª REGIÃO (PR)
Ano
2015
Nível
Superior
Cargo
Analista Judiciário - Área Apoio Especializado - Tecnologia da Informação
Um Analista da área de TI trabalha em uma organização que possui aplicações que utilizam os SGBDs Oracle 11g e SQL Server. Ele identificou que o comando SQL que está correto e pode ser aplicado em ambas as plataformas é
  1. AALTER TABLE DebTrab ALTER COLUMN NroProcesso integer;
  2. BALTER TABLE DebTrab MODIFY NroProcesso int;
  3. CALTER TABLE DebTrab ADD DataPartida data;
  4. DALTER TABLE DebTrab ADD IndiceAtualiz float;
  5. EALTER TABLE DebTrab DROP COLUMN DataPartida;
Revelar gabarito e comentário

GabaritoD — ALTER TABLE DebTrab ADD IndiceAtualiz float;

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

SQL: Comando ALTER TABLE compatível entre Oracle e SQL Server

Gabarito: letra D. O comando ALTER TABLE DebTrab ADD IndiceAtualiz float; é o único que utiliza sintaxe e tipos de dados aceitos tanto pelo Oracle 11g quanto pelo SQL Server, pois ambos suportam o tipo FLOAT e a adição de colunas com ALTER TABLE ... ADD.

A questão testa o conhecimento das diferenças de sintaxe entre SGBDs, especialmente para o comando ALTER TABLE. Enquanto a adição de colunas (ADD) é padrão, a alteração do tipo de uma coluna existente possui comandos distintos: ALTER COLUMN no SQL Server e MODIFY no Oracle.

Alternativa

Comando SQL

Compatível Oracle?

Compatível SQL Server?

Motivo da In/compatibilidade

A

ALTER TABLE DebTrab ALTER COLUMN NroProcesso integer;

ALTER COLUMN é sintaxe do SQL Server; Oracle usa MODIFY.

B

ALTER TABLE DebTrab MODIFY NroProcesso int;

MODIFY é sintaxe do Oracle; SQL Server usa ALTER COLUMN.

C

ALTER TABLE DebTrab ADD DataPartida data;

ADD é padrão, mas tipo data não existe (correto seria DATE).

D

ALTER TABLE DebTrab ADD IndiceAtualiz float;

ADD é padrão SQL; tipo FLOAT é suportado por ambos.

E

ALTER TABLE DebTrab DROP COLUMN DataPartida;

✅ (sintaxe)

✅ (sintaxe)

❌ Coluna DataPartida não existe na tabela, gerando erro de execução.

Alternativa A — ❌ Incorreta

Utiliza ALTER COLUMN, que é a sintaxe do SQL Server (e MySQL), mas não funciona no Oracle (que usa MODIFY). Portanto, não é aplicável em ambas as plataformas.

Alternativa B — ❌ Incorreta

Utiliza MODIFY, que é a sintaxe do Oracle, mas não é aceita no SQL Server. Também não é compatível com ambas.

Alternativa C — ❌ Incorreta

A cláusula ADD está correta, mas o tipo de dado data não é um tipo SQL válido. O tipo correto para data seria DATE. Além disso, mesmo se fosse DATE, a sintaxe seria aceita em ambos, mas o erro no tipo torna o comando inválido.

Alternativa D — ✅ Correta ⟵ GABARITO

O comando ALTER TABLE DebTrab ADD IndiceAtualiz float; é perfeitamente válido: ADD é padrão SQL e o tipo FLOAT é suportado tanto pelo Oracle quanto pelo SQL Server. Assim, pode ser executado em ambas as plataformas sem erros de sintaxe.

Alternativa E — ❌ Incorreta

Embora a sintaxe DROP COLUMN seja válida em ambos os SGBDs, a tabela DebTrab (conforme dados fornecidos) não possui uma coluna chamada DataPartida. Portanto, a tentativa de remover uma coluna inexistente geraria um erro de execução, o que impede sua aplicação.


Gabarito: letra D.

Link permanente: /questoes/fc026539