colunas ou tabelas com hifen em um banco de dados podem dar muita dor de cabeça...
use sempre underlines (_) e não hífens (-)...
entretando.. se você estiver mexendo em um sistema que tenha essa situação, como aconteceu comigo hoje, terá que usar aspas duplas!
a seguinte query não funciona
select * from pub.empresa where ep-codigo = 1
Você obtém erros como:
Error: [DataDirect][OpenEdge JDBC Driver][OpenEdge] Column não encontrada ou especificada (7520)
Error: [DataDirect][OpenEdge JDBC Driver][OpenEdge] Column "EP" cannot be found or is not specified for query. (13865)
Caused by: java.sql.SQLException: [DataDirect][OpenEdge JDBC Driver][OpenEdge] Column "EMPRESA0_.EP" cannot be found or is not specified for query. (13865)
para resolver use aspas duplas:
select * from pub.empresa where "ep-codigo" = 1
e tudo funcionará perfeitamente..
se você usar hibernate, jpa.. e for mapear um campo com hífen, terá que colocar aspas também, mas terá que usar o caracter de escape \"
@Column(name = "\"ep-codigo\"")
private Long epCodigo;
é isso aí, valeu!
sexta-feira, 9 de abril de 2010
Assinar:
Postar comentários (Atom)
Resolveu uma dúvida rapidamente aqui, continue firme e forte, bom trabalho.
ResponderExcluir