2
respostas

Problema com campos com letra maiúscula no banco de dados

Olá! Sei que não é uma boa prática ter campos no banco de dados com letras maiúsculas. No entanto, estou acompanhando o curso para conseguir migrar um server de NodeJS para o Java, e o banco utilizado é Postgres. E tenho algumas tabelas com campos maiúsculos, por exemplo a tabela pessoa, que tem o campo fullName. Mas isto parece ser um problema para o JDBC. Exemplo:

stm.execute(
                "INSERT INTO pessoa (fullName) VALUES ('Henrique')", 
                Statement.RETURN_GENERATED_KEYS);

Neste simples insert, o JDBC está transformando fullName para fullname, então ocorre o erro dizendo que fullname não existe:

Exception in thread "main" org.postgresql.util.PSQLException: ERROR: column "fullname" of relation "pessoa" does not exist

Há alguma forma de contornar isso no Java ?

2 respostas

Olá, Henrique.

Tudo bem?

Para que o Postgres leia o nome correto da coluna com letra maiuscula, deve-se usar "" (aspas).

Exemplo:

Erro

Query com erro quando se tem letra maiuscula

Sucesso

Query sem erro quando se tem letra maiuscula

Seu código deve ficar parecido com:

stm.execute(
                "INSERT INTO pessoa (\"fullName\") VALUES ('Henrique')", 
                Statement.RETURN_GENERATED_KEYS);

Espero ter ajudado.

Bons estudos!

Certeiro Hernandes! Muito obrigado é isso mesmo.