2010-01-21 27 views
8

kullanırken "xxx sütun adı geçerli değil" SQL Server JDBC sürücüsünden garip bir hata alıyorum. SqlServer Management Studio'da yürütüldüğünde, sütun doğru olsa da ve aynı sorgu düzgün çalışmasına rağmen sütun adının geçersiz olduğunu söylüyor.SQL Server Özel Durum: JDBC

hatadır: [Oyunun Sonu] Sadece bir tahmin:

Caused by: com.microsoft.sqlserver.jdbc.SQLServerException: The column name MarginCall is not valid. 
    at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(SQLServerException.java:170) 
    at com.microsoft.sqlserver.jdbc.SQLServerResultSet.findColumn(SQLServerResultSet.java:626) 
    at com.microsoft.sqlserver.jdbc.SQLServerResultSet.getBigDecimal(SQLServerResultSet.java:2570) 
    at org.apache.commons.dbcp.DelegatingResultSet.getBigDecimal(DelegatingResultSet.java:305) 
... 
+3

Arıza kodunu ekleyebilir misiniz? Bu ad, ResultSet.getColumnNames'te aldığınız değerlerle eşleşiyor mu? –

cevap

11

Sorun çözüldü. Bu benim için basit bir hataydı.

Sorgum select ifadesinde bir 'AS' ifadesi kullanıyordu. Sütun değerini AS yan tümcesinde tanımlanan sütun diğer adı yerine gerçek sütun adını kullanarak ResultSet'ten almaya çalışıyordum.

Okul çocuğu hatası. Zaman kaybı için özür dilerim.

ResultSet.getColumnNames() yöntemini kullanması önerisi nedeniyle Steve B. için çok teşekkürler. Kullanılan gerçek yöntem çağrısı ResultSet.getMetaData(). GetColumnName (columnIndex) olsa da;

0

deneyin köşeli parantez içindeki sütun adını çevrelemek için.

+0

Korkarım ki bu sorun değildi ama öneri için çok teşekkürler. –

1

Tablo adınızın durumunu kontrol edin. harmanlama, ms sql sunucusunda büyük/küçük harfe duyarlı olarak ayarlanmışsa, tablo adları da etkilenir.