2015-04-13 8 views
6

momento in esecuzione questa istruzione SQL:Errore di sintassi nell'istruzione SQL - errore H2 42001

select TimeInterval, 
     ((((Timer*60)/1.0)*100)/((10.0*60)/60.0)) as 'Throughput-run_1_8_11' 
from StatExternalData, StatisticDefinition 
where StatisticDefinition.ID=StatExternalData.StatDefId 
     and StatisticName='PSI_CompTran_Successful_Cnt' 
order by TimeInterval asc 

ottengo questo errore:

"select TimeInterval, ((((Timer*60)/1.0)*100)/((10.0*60)/60.0)) as 'Throughput-run_1_8_11'[*] from StatExternalData, StatisticDefinition where StatisticDefinition.ID=StatExternalData.StatDefId and StatisticName='PSI_CompTran_Successful_Cnt' order by TimeInterval asc"; 
expected "identifier"; [42001-185] 

Ho capito che il [*] indica che cosa parte dell'istruzione non è corretta e il codice di errore H2 42001 indica un'istruzione SQL non valida, ma per settimane ho sbattuto la testa contro il muro cercando di capire qual è il problema, qualcuno ha un'idea?

+0

Hai provato che racchiude l'alias di colonna tra virgolette doppie ''"" al posto di quelle singole ('' '')? – Barranka

+0

, prova a evitare di usare i trattini '-'. Prova ** 'Throughput_run_1_8_11' ** invece di' Throughput-run_1_8_11' – Barranka

+3

'come 'Throughput-run_1_8_11'' è SQL non valido. Le virgolette singole sono per valori letterali stringa. Le virgolette sono per gli identificatori –

risposta

0

Ho avuto lo stesso problema:

mio Entity si presentava così:

@Entity 
public class ShopCommentRating { 

@NotNull 
private Boolean like; 

} 

la query risultante conteneva un [*]

Per rimuovere l'errore ho dovuto cambiare il nome del campo a sth. in questo modo:

@Entity 
public class ShopCommentRating { 

@NotNull 
private Boolean commentLike; 

} 

'minuscolo caso cammello' nome