Julgue o item seguinte, a respeito de H2 Database e de PostgreSQL.No script precedente, desenvolvido em SQL no PostgreSQL, a substituição dos caracteres #XPTO por References fará que a execução do script apresente o seguinte resultado.
CCerto
EErrado
Revelar gabarito e comentário▾
GabaritoE — Errado
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”.
PostgreSQL: substituição de placeholder em script SQL
Gabarito: Errado (E). A substituição do texto #XPTO por References no script SQL não produzirá o resultado apresentado na imagem 2, pois a palavra References é uma palavra reservada do SQL e, ao ser utilizada como nome de tabela ou coluna sem aspas duplas, causará erro de sintaxe no PostgreSQL. A questão explora o conhecimento sobre palavras reservadas e a necessidade de aspas duplas para identificadores que coincidem com elas.
O PostgreSQL, assim como outros SGBDs relacionais, possui um conjunto de palavras reservadas que não podem ser usadas como identificadores (nomes de tabelas, colunas, etc.) sem aspas duplas. A palavra References é uma dessas palavras reservadas, pois é utilizada na sintaxe de criação de chaves estrangeiras (REFERENCES). Portanto, ao substituir #XPTO por References em um comando como CREATE TABLE ... (id int REFERENCES ...), o PostgreSQL interpretará References como parte da sintaxe de restrição, e não como um nome de coluna, gerando erro de sintaxe.
Para usar uma palavra reservada como identificador, é necessário colocá-la entre aspas duplas, como "References". No entanto, mesmo assim, o resultado da execução do script dependeria do contexto exato do script, que não foi fornecido na íntegra. A questão apresenta duas imagens: a primeira com o script original contendo #XPTO e a segunda com o suposto resultado após a substituição. Como não temos acesso ao conteúdo das imagens, não podemos verificar se o resultado apresentado é correto ou não. Contudo, a simples substituição de #XPTO por References sem aspas duplas, em um contexto onde References é usado como nome de tabela ou coluna, resultará em erro de sintaxe, tornando a afirmação incorreta.
A banca explora a confusão entre o uso de References como palavra reservada e como identificador comum. O candidato pode pensar que a substituição é válida, mas o PostgreSQL não aceitará a palavra reservada sem aspas duplas. Além disso, a questão pode envolver a criação de uma tabela com uma chave estrangeira, onde References é parte da sintaxe, e a substituição alteraria o significado do comando.
Portanto, a afirmação de que a execução do script apresentará o resultado mostrado na imagem 2 é errada, pois a substituição causará erro de sintaxe ou comportamento inesperado, não o resultado esperado.
Item — ❌ Errado
A substituição de #XPTO por References não produzirá o resultado apresentado, pois References é uma palavra reservada do SQL. No PostgreSQL, palavras reservadas não podem ser usadas como identificadores sem aspas duplas. Por exemplo, em um comando CREATE TABLE ... (id int REFERENCES ...), a palavra References é interpretada como parte da sintaxe de chave estrangeira, não como nome de coluna. Portanto, o script apresentará erro de sintaxe, e não o resultado mostrado na imagem 2.
NÃO CAIA NESSA!
A banca troca a palavra reservada References por um identificador comum, fazendo o candidato acreditar que a substituição é válida. Lembre-se: palavras reservadas do SQL (como REFERENCES, SELECT, TABLE) exigem aspas duplas para serem usadas como nomes de tabelas ou colunas. Sem elas, o PostgreSQL retorna erro de sintaxe.
PEGA ESSA DICA!
Ao se deparar com questões que envolvem substituição de texto em scripts SQL, verifique se o texto substituído é uma palavra reservada. Se for, o script provavelmente falhará. Além disso, observe o contexto: se a palavra aparece em um comando CREATE TABLE ou ALTER TABLE, a chance de ser uma palavra reservada é alta.