# ODBC Bezeichner zu lang HILF



## 0plan (27. Nov 2012)

Hallo,

ich habe in meiner Anwendung eine SQL Abfrage (String) welcher so an die 15 Felder abfragt. Um es übersichtlich zu halten ist der String welcher die Abfrage speichert auch "relativ" groß.

Bei der Ausführung bekomme ich jedoch immer eine Exception

```
java.sql.SQLSyntaxErrorException: ORA-00972: Bezeichner ist zu lang
```

Es muss doch möglich sein ein paar Felder in eine Abfrage zu packen oder ?

So sieht es momentan aus, ich habe die original Feldnamen geändert.


```
String query ="SELECT " +
					"FELD1," +
					"FELD1," +
					"FELD1," +
					"FELD1," +
					"FELD1," +
					"FELD1," +
					"FELD1," +
					"FELD1," +
					"FELD1," +
					"FELD1," +
					"FELD1," +
					"FELD1," +
					"FELD1," +
					"FELD1" +
					"FELD1" +
					
					"FROM TABELLE1, TABELLE2WHERE 1_ID = 2_ID" +
					"AND FELD3 ='" + einWert + "'";
			
			Statement stmt = DatabaseManager.getConnection().createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
			ResultSet rs = stmt.executeQuery(query);
```


----------



## D4rkscr43m (27. Nov 2012)

klar ist das Möglich, hättest du mal nach dem Fehler gegooglet hättest du auch gesehen, dass damit nicht die Länge des Abfragestrings gemeint ist, sondern die Länge eines Bezeichners. Diese dürfen maximal 30 Zeichen lang sein.


----------



## Michael... (27. Nov 2012)

0plan hat gesagt.:


> Hallo,
> 
> ich habe in meiner Anwendung eine SQL Abfrage (String) welcher so an die 15 Felder abfragt. Um es übersichtlich zu halten ist der String welcher die Abfrage speichert auch "relativ" groß.
> 
> ...


Die Fehlermeldung bezieht sich nicht auf die Abfrage, sondern die in der Abfrage verwendeten Bezeichner, für Tabellen-, Feldname...

Vermutlich ein Fehler in der Syntax des Statements? Verwendest Du PreparedStatements? Wenn nicht, würde ich Dir das empfehlen.


----------



## 0plan (27. Nov 2012)

Ich habe es gegooglet und nichts brauchbares gefunden. Lesen kann ich schon, hab ja auch angegeben das die Meldung lautet "bezeichner ist zu lang".

Wie löse ich das Problem denn bitte ?


----------



## Michael... (27. Nov 2012)

Wie gesagt, mit PreparedStatements arbeiten und wenn die Abfrage - zumindest vom Aufbau - dem Original entspricht, sind da syntaktische Fehler enthalten: fehlende Kommas und Leerzeichen


----------



## 0plan (27. Nov 2012)

Danke fürs erste. Also ein Fehler im Statement habe ich eigentlich nicht, habe nur die Feldnamen erweitert, vorher ging es auch.

Mich würde es wundern wenn die Feldnamen zu lang sind o.ä. da sie in unserem ERP genau gleich heissen.


----------



## 0plan (27. Nov 2012)

Thema erledigt, es fehlte ein ",". Danke und sorry


----------

